Rust сократил расходы на CI примерно на 75% - и сознательно оставил лишние сборки компилятора.
В интервью Serokell Марко Иени из Rust Foundation объяснил компромисс.
Основную экономию дал переход с GitHub large runners на стандартные. По Enterprise-плану проекту доступны до 500 стандартных раннеров одновременно, а большие расходуют ограниченные спонсорские кредиты.
Часть тестов разделили между двумя стандартными раннерами. Каждый заново собирает компилятор — вычисления дублируются.
Можно собрать один раз и раздать артефакты. Но команда отказалась: такой обмен сделал бы CI медленнее и хрупче. Доступных раннеров хватает, поэтому простота оказалась ценнее экономии CPU.
Тот же принцип - в мониторинге: с собственного Prometheus и Grafana перешли на Datadog, поскольку старую систему никто не успевал обновлять.
Самый ограниченный ресурс здесь - время инженеров. Небольшая команда, во многом состоящая из волонтёров, не может оптимизировать каждый цент.
Хорошая инфраструктура укладывается в бюджет и остаётся посильной в сопровождении. Иногда ради этого стоит выполнять одну и ту же работу дважды.
https://serokell.io/blog/the-hidden-challenges-of-rust-infrastructure-interview-with-marco-ieni
В интервью Serokell Марко Иени из Rust Foundation объяснил компромисс.
Основную экономию дал переход с GitHub large runners на стандартные. По Enterprise-плану проекту доступны до 500 стандартных раннеров одновременно, а большие расходуют ограниченные спонсорские кредиты.
Часть тестов разделили между двумя стандартными раннерами. Каждый заново собирает компилятор — вычисления дублируются.
Можно собрать один раз и раздать артефакты. Но команда отказалась: такой обмен сделал бы CI медленнее и хрупче. Доступных раннеров хватает, поэтому простота оказалась ценнее экономии CPU.
Тот же принцип - в мониторинге: с собственного Prometheus и Grafana перешли на Datadog, поскольку старую систему никто не успевал обновлять.
Самый ограниченный ресурс здесь - время инженеров. Небольшая команда, во многом состоящая из волонтёров, не может оптимизировать каждый цент.
Хорошая инфраструктура укладывается в бюджет и остаётся посильной в сопровождении. Иногда ради этого стоит выполнять одну и ту же работу дважды.
https://serokell.io/blog/the-hidden-challenges-of-rust-infrastructure-interview-with-marco-ieni
❤12👍8🔥2
Rust выбирают для связи медицинских устройств: Vector заново разработала на нём стек IEEE 11073 SDC.
SDC позволяет приборам разных производителей обнаруживать друг друга, обмениваться измерениями, состояниями и тревожными сигналами. Это основа для совместной работы оборудования в операционных и реанимации.
Почему Rust? По объяснению Vector, безопасность памяти и типов помогает предотвращать распространённые ошибки ещё при разработке, снижая риск части сбоев и уязвимостей.
При этом переписывать всё приложение не требуется: стек подключается к существующему коду на C и C++ через FFI. Его можно встроить в устройство или использовать через шлюз.
Vector также заявляет рост производительности благодаря оптимизации обработки XML и структуры данных, описывающей состояние прибора. Конкретных результатов бенчмарков компания не привела.
Доступность ожидается в первом квартале 2027 года. О сертификации или регуляторном одобрении в анонсе не сообщается.
Заметный пример практического внедрения Rust: производитель инженерного ПО выбирает его для компонента, предназначенного работать внутри медицинского оборудования.
https://www.vector.com/en/company/press/press-releases/vector-announces-new-rust-based-ieee-11073-sdc-stack-for-the-medical-device-industry/
SDC позволяет приборам разных производителей обнаруживать друг друга, обмениваться измерениями, состояниями и тревожными сигналами. Это основа для совместной работы оборудования в операционных и реанимации.
Почему Rust? По объяснению Vector, безопасность памяти и типов помогает предотвращать распространённые ошибки ещё при разработке, снижая риск части сбоев и уязвимостей.
При этом переписывать всё приложение не требуется: стек подключается к существующему коду на C и C++ через FFI. Его можно встроить в устройство или использовать через шлюз.
Vector также заявляет рост производительности благодаря оптимизации обработки XML и структуры данных, описывающей состояние прибора. Конкретных результатов бенчмарков компания не привела.
Доступность ожидается в первом квартале 2027 года. О сертификации или регуляторном одобрении в анонсе не сообщается.
Заметный пример практического внедрения Rust: производитель инженерного ПО выбирает его для компонента, предназначенного работать внутри медицинского оборудования.
https://www.vector.com/en/company/press/press-releases/vector-announces-new-rust-based-ieee-11073-sdc-stack-for-the-medical-device-industry/
🔥29❤4👍3🐳1😨1🫡1💘1
Rust официально появился в systemd - с жёсткими ограничениями.
В основную ветку проекта приняли поддержку новых программ на Rust. Изменения готовятся для systemd 263.
Systemd отвечает за запуск системы и управление службами во многих Linux-дистрибутивах. Теперь часть новых утилит можно разрабатывать на Rust по следующим правилам:
- Только самостоятельные компоненты, от которых не зависят другие части systemd.
- Сборка через Meson, без Cargo.
- Режим `no_std` — без стандартной библиотеки Rust и произвольных сторонних зависимостей.
- Взаимодействие с существующим кодом — через C-интерфейсы.
Переписывать существующий C-код не планируют. Поддержка Rust опциональна: проект по-прежнему можно собрать без него.
Первый запланированный компонент — systemd-keyring-setup. Он будет загружать X.509-сертификаты в хранилища ключей ядра Linux при загрузке. Сама утилита пока находится в отдельном, ещё не принятом PR.
Rust постепенно входит в базовую инфраструктуру Linux: через новые компоненты с чёткими границами и общей системой сборки.
https://github.com/systemd/systemd/pull/44324
В основную ветку проекта приняли поддержку новых программ на Rust. Изменения готовятся для systemd 263.
Systemd отвечает за запуск системы и управление службами во многих Linux-дистрибутивах. Теперь часть новых утилит можно разрабатывать на Rust по следующим правилам:
- Только самостоятельные компоненты, от которых не зависят другие части systemd.
- Сборка через Meson, без Cargo.
- Режим `no_std` — без стандартной библиотеки Rust и произвольных сторонних зависимостей.
- Взаимодействие с существующим кодом — через C-интерфейсы.
Переписывать существующий C-код не планируют. Поддержка Rust опциональна: проект по-прежнему можно собрать без него.
Первый запланированный компонент — systemd-keyring-setup. Он будет загружать X.509-сертификаты в хранилища ключей ядра Linux при загрузке. Сама утилита пока находится в отдельном, ещё не принятом PR.
Rust постепенно входит в базовую инфраструктуру Linux: через новые компоненты с чёткими границами и общей системой сборки.
https://github.com/systemd/systemd/pull/44324
👍27🔥11❤3
📘 На Mentorix вышел курс — «Rust-разработчик: подготовка к собеседованию»
Хотите на собеседовании спокойно объяснить, откуда E0502, чем Send отличается от Sync и как устроен Future? Этот курс — полный путь от диагностики пробелов до пробных собеседований junior, middle и senior.
• Владение и заимствование: E0382, E0502, E0597, NLL
• Времена жизни: elision, HRTB, variance
• Типажи: dyn Trait, object safety, blanket impl
• Умные указатели: Box, Rc, Arc, RefCell, Cow
• Конкурентность: Send и Sync, Mutex, атомики и Ordering
• Async изнутри: Future, Waker, Pin — без tokio
• Unsafe и FFI: UB, MaybeUninit, repr(C)
• Live-coding: LRU-кэш, трие, Dijkstra, парсер выражений
• Карьера: резюме, оффер, торг о зарплате
🎓 Сертификат — добавьте в резюме или LinkedIn
🏷 Скидка 50%, действует 48 часов
12 990 ₽ → 6 495 ₽
➜ Пройти курс на Mentorix
Ещё 25 курсов бесплатно — доступны после регистрации
Хотите на собеседовании спокойно объяснить, откуда E0502, чем Send отличается от Sync и как устроен Future? Этот курс — полный путь от диагностики пробелов до пробных собеседований junior, middle и senior.
• Владение и заимствование: E0382, E0502, E0597, NLL
• Времена жизни: elision, HRTB, variance
• Типажи: dyn Trait, object safety, blanket impl
• Умные указатели: Box, Rc, Arc, RefCell, Cow
• Конкурентность: Send и Sync, Mutex, атомики и Ordering
• Async изнутри: Future, Waker, Pin — без tokio
• Unsafe и FFI: UB, MaybeUninit, repr(C)
• Live-coding: LRU-кэш, трие, Dijkstra, парсер выражений
• Карьера: резюме, оффер, торг о зарплате
🎓 Сертификат — добавьте в резюме или LinkedIn
🏷 Скидка 50%, действует 48 часов
➜ Пройти курс на Mentorix
Ещё 25 курсов бесплатно — доступны после регистрации
🖕15😐2😁1
BeautifulRust – бесплатный набор навыков, который помогает ИИ-агентам писать более качественный Rust.
Проект объединяет рекомендации Google, Microsoft, Rust API Guidelines, Effective Rust и Rust Design Patterns. Когда источники расходятся, автор выбирает подход и объясняет причину.
Внутри – навыки для написания и ревью кода, а также конфигурация Clippy для автоматических проверок.
Перед сдачей результата агенту предписано запускать форматирование, Clippy с предупреждениями как ошибками, тесты и сборку документации.
В авторской оценке на трёх задачах навык повысил результат с 24 до 29 пройденных проверок из 30, расходуя примерно на треть больше токенов. Выборка небольшая, но результат интересный.
Работает с Claude Code, Codex, Cursor и другими клиентами Agent Skills. Лицензия – MIT.
Установка:
https://github.com/morganlinton/BeautifulRust
Проект объединяет рекомендации Google, Microsoft, Rust API Guidelines, Effective Rust и Rust Design Patterns. Когда источники расходятся, автор выбирает подход и объясняет причину.
Внутри – навыки для написания и ревью кода, а также конфигурация Clippy для автоматических проверок.
Перед сдачей результата агенту предписано запускать форматирование, Clippy с предупреждениями как ошибками, тесты и сборку документации.
В авторской оценке на трёх задачах навык повысил результат с 24 до 29 пройденных проверок из 30, расходуя примерно на треть больше токенов. Выборка небольшая, но результат интересный.
Работает с Claude Code, Codex, Cursor и другими клиентами Agent Skills. Лицензия – MIT.
Установка:
npx skills add morganlinton/BeautifulRust
https://github.com/morganlinton/BeautifulRust
❤19👍12🔥6🥰3😍1🐳1🌚1
Уязвимости в Rust-библиотеках zip-rs и librsvg
В библиотеке zip-rs, написанной на языке Rust и насчитывающей около 10 млн загрузок в неделю, выявлена уязвимость (CVE-2026-115905), позволяющая создавать архивы, которые выглядят безобидными, но при распаковке из них извлекаются другие, изначально не показанные в списке, файлы. Файлы могут быть размещены в архиве вне структуры Central Directory, из-за чего при просмотре списка файлов показывается одно содержимое, но при распаковке через API ZipStreamReader извлекаются другие файлы. Проблеме присвоен уровень опасности 10 из 10. Уязвимость исправлена в версии zip-rs 9.0.5.
Полный текст:
https://opennet.ru/66555/
https://opennet.me/66555/
В библиотеке zip-rs, написанной на языке Rust и насчитывающей около 10 млн загрузок в неделю, выявлена уязвимость (CVE-2026-115905), позволяющая создавать архивы, которые выглядят безобидными, но при распаковке из них извлекаются другие, изначально не показанные в списке, файлы. Файлы могут быть размещены в архиве вне структуры Central Directory, из-за чего при просмотре списка файлов показывается одно содержимое, но при распаковке через API ZipStreamReader извлекаются другие файлы. Проблеме присвоен уровень опасности 10 из 10. Уязвимость исправлена в версии zip-rs 9.0.5.
Полный текст:
https://opennet.ru/66555/
https://opennet.me/66555/
🔥17❤5👍5
Основатель CentOS и Rocky Linux представил Linux-совместимое ядро Ginux, написанное на Rust
Грегори Курцер (Gregory Kurtzer), основатель дистрибутивов CentOS и Rocky Linux, представил проект Ginux, развивающий ядро операционной системы на языке Rust, нацеленное на достижение совместимости с ядром Linux. Опубликованный исследовательский прототип уже способен загрузить системное окружение дистрибутивов Alpine с BusyBox и Rocky Linux 10 с systemd в многопользовательском консольном режиме. Код проекта распространяется под лицензией Apache 2.0. Поддерживается работа на системах с архитектурой x86-64.
Полный текст:
https://opennet.ru/66562/
https://opennet.me/66562/
Грегори Курцер (Gregory Kurtzer), основатель дистрибутивов CentOS и Rocky Linux, представил проект Ginux, развивающий ядро операционной системы на языке Rust, нацеленное на достижение совместимости с ядром Linux. Опубликованный исследовательский прототип уже способен загрузить системное окружение дистрибутивов Alpine с BusyBox и Rocky Linux 10 с systemd в многопользовательском консольном режиме. Код проекта распространяется под лицензией Apache 2.0. Поддерживается работа на системах с архитектурой x86-64.
Полный текст:
https://opennet.ru/66562/
https://opennet.me/66562/
👍25❤10💅5😁3🤣3❤🔥2🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
⚡ Minecraft переписывают на Rust: Horizon - альтернативный клиент с открытым кодом.
Проект воссоздаёт Minecraft: Java Edition 26.3: от генерации мира и физики до интерфейса, звука и сетевой игры. Доступен для Windows, Linux и Mac на Apple Silicon.
По заявлениям разработчиков, совместимость с оригиналом проверяется 281 набором сравнительных тестов. Клиент подключается к ванильным серверам, поддерживает сохранения и перенос совместимых модов из сборок Modrinth и CurseForge.
В сети распространяются демонстрации высокой производительности на слабых компьютерах. Однако обещать всем 60 FPS и мгновенную загрузку чанков нельзя: результат зависит от железа, настроек и конкретной сцены.
Как попробовать:
1. Установите свою лицензионную Minecraft: Java Edition через официальный лаунчер и один раз запустите версию 26.3.
2. Скачайте лаунчер Horizon и установите доступный релиз.
3. Подготовьте ресурсы из установленной копии игры и запускайте клиент.
Horizon – независимый проект, не связанный с Mojang и Microsoft. Код распространяется под MIT, файлы самой Minecraft в комплект не входят.
https://playhorizon.dev/
Проект воссоздаёт Minecraft: Java Edition 26.3: от генерации мира и физики до интерфейса, звука и сетевой игры. Доступен для Windows, Linux и Mac на Apple Silicon.
По заявлениям разработчиков, совместимость с оригиналом проверяется 281 набором сравнительных тестов. Клиент подключается к ванильным серверам, поддерживает сохранения и перенос совместимых модов из сборок Modrinth и CurseForge.
В сети распространяются демонстрации высокой производительности на слабых компьютерах. Однако обещать всем 60 FPS и мгновенную загрузку чанков нельзя: результат зависит от железа, настроек и конкретной сцены.
Как попробовать:
1. Установите свою лицензионную Minecraft: Java Edition через официальный лаунчер и один раз запустите версию 26.3.
2. Скачайте лаунчер Horizon и установите доступный релиз.
3. Подготовьте ресурсы из установленной копии игры и запускайте клиент.
Horizon – независимый проект, не связанный с Mojang и Microsoft. Код распространяется под MIT, файлы самой Minecraft в комплект не входят.
https://playhorizon.dev/
❤26👍18🤝1
Переписал GPU-вычисления на Rust и ускорил обработку в десятки раз. Но часть работы не окупилась
Провин Перера рассказал, как за три недели перевёл speakrs с ONNX Runtime на собственные GPU-ядра, написанные на Rust с помощью NVIDIA cuda-oxide.
Библиотека занимается диаризацией речи: определяет, кто и когда говорит в аудиозаписи.
По замерам автора на RTX 4090, после всех изменений:
- VoxConverse dev: 1236 → 38 секунд.
- Earnings-21: 2692 → 75 секунд.
- Ошибка диаризации, DER, осталась прежней.
Однако отказ от ONNX Runtime сам по себе дал ускорение в 1,81 раза. Остальной прирост нельзя приписывать одной замене рантайма.
А вот замена cuDNN и cuBLAS собственными ядрами, по оценке автора, преимущественно не оправдала усилий. Библиотеки NVIDIA оптимизированы под множество GPU, а свои реализации приходилось отдельно настраивать под A100, T4 и RTX 5090. H100 пока осталась без настройки.
Бонус полного отказа от этих библиотек - GPU-контейнер примерно на 2 ГБ меньше.
Большую часть ядер написали ИИ-агенты. Автор задавал цели, измерял результат и решал, что принимать. Пять дней ушли на сложную систему проверок, принёсшую один PR. После перехода к простой сквозной проверке за восемь часов удалось внедрить больше изменений.
Вывод автора: сначала измерьте пользу от замены компонента. Поддерживать собственную версию придётся тоже вам.
https://avencera.com/
Провин Перера рассказал, как за три недели перевёл speakrs с ONNX Runtime на собственные GPU-ядра, написанные на Rust с помощью NVIDIA cuda-oxide.
Библиотека занимается диаризацией речи: определяет, кто и когда говорит в аудиозаписи.
По замерам автора на RTX 4090, после всех изменений:
- VoxConverse dev: 1236 → 38 секунд.
- Earnings-21: 2692 → 75 секунд.
- Ошибка диаризации, DER, осталась прежней.
Однако отказ от ONNX Runtime сам по себе дал ускорение в 1,81 раза. Остальной прирост нельзя приписывать одной замене рантайма.
А вот замена cuDNN и cuBLAS собственными ядрами, по оценке автора, преимущественно не оправдала усилий. Библиотеки NVIDIA оптимизированы под множество GPU, а свои реализации приходилось отдельно настраивать под A100, T4 и RTX 5090. H100 пока осталась без настройки.
Бонус полного отказа от этих библиотек - GPU-контейнер примерно на 2 ГБ меньше.
Большую часть ядер написали ИИ-агенты. Автор задавал цели, измерял результат и решал, что принимать. Пять дней ушли на сложную систему проверок, принёсшую один PR. После перехода к простой сквозной проверке за восемь часов удалось внедрить больше изменений.
Вывод автора: сначала измерьте пользу от замены компонента. Поддерживать собственную версию придётся тоже вам.
https://avencera.com/
👍11❤4🔥4🤔3⚡1🥰1
Два месяца оптимизаций Rust-кода. А самое большое ускорение дало знание того, как устроен Linux.
Гийом Гомес, разработчик
Дальше началась оптимизация:
- Работа с байтами вместо строк - примерно на 20% меньше инструкций.
- Замена
-
- Повторное использование буферов - на 79% меньше выделенных байтов, но без ускорения.
Перелом случился после чтения исходников
Значит, обходить одну и ту же таблицу для каждого потока незачем. Если она общая, достаточно скопировать GPU-данные процесса.
В замерах автора время выполнения сократилось с 0,31 до 0,11 секунды - примерно на 64%, а число инструкций упало на 65%.
Есть нюанс: поток может отделить свою таблицу. Проверить, общая ли она, позволяет
Цифры получены на машине автора и зависят от нагрузки.
https://blog.guillaume-gomez.fr/
Гийом Гомес, разработчик
sysinfo, добавил сбор данных об использовании GPU отдельными процессами. Обновление информации резко замедлилось: приходилось обходить открытые файловые дескрипторы и искать подключения к видеокарте.Дальше началась оптимизация:
- Работа с байтами вместо строк - примерно на 20% меньше инструкций.
- Замена
Vec структурой в одном парсере - около 6%.-
fstatat вместо readlink - около 8%.- Повторное использование буферов - на 79% меньше выделенных байтов, но без ускорения.
Перелом случился после чтения исходников
htop: потоки обычно разделяют таблицу файловых дескрипторов своего процесса.Значит, обходить одну и ту же таблицу для каждого потока незачем. Если она общая, достаточно скопировать GPU-данные процесса.
В замерах автора время выполнения сократилось с 0,31 до 0,11 секунды - примерно на 64%, а число инструкций упало на 65%.
Есть нюанс: поток может отделить свою таблицу. Проверить, общая ли она, позволяет
kcmp.Цифры получены на машине автора и зависят от нагрузки.
https://blog.guillaume-gomez.fr/
❤12🔥11