🦀 Google затащили Rust туда, где его реально ждали - прямо в cellular baseband у Pixel 10.
Не в приложение, не в системный сервис и даже не в очередную утилиту, а в прошивку модема. Это уже совсем другой уровень.
Первым шагом заменили DNS-парсер, который раньше был написан на C и регулярно оставался источником memory-safety проблем. Теперь там Rust на базе hickory-proto: bare-metal, no_std, FFI к существующим C-аллокаторам - все по-взрослому.
И самое важное тут даже не сам DNS-парсер. Главное, что Google уже протащили Rust в build system baseband. А значит, это не разовая демонстрация, а начало нормальной поэтапной миграции.
Вот так и выглядит реальное внедрение Rust в критическую инфраструктуру: без громких лозунгов, но с максимальной пользой. Сначала один опасный компонент, потом еще один, а дальше язык постепенно заходит в самые уязвимые части системы.
Rust все чаще идет не в новые игрушечные проекты, а в старые и сложные куски железа, где цена ошибки слишком высокая.
security.googleblog.com/2026/04/bringing-rust-to-pixel-baseband.html
#Rust #RustLang #MemorySafety #EmbeddedSystems #Android
Не в приложение, не в системный сервис и даже не в очередную утилиту, а в прошивку модема. Это уже совсем другой уровень.
Первым шагом заменили DNS-парсер, который раньше был написан на C и регулярно оставался источником memory-safety проблем. Теперь там Rust на базе hickory-proto: bare-metal, no_std, FFI к существующим C-аллокаторам - все по-взрослому.
И самое важное тут даже не сам DNS-парсер. Главное, что Google уже протащили Rust в build system baseband. А значит, это не разовая демонстрация, а начало нормальной поэтапной миграции.
Вот так и выглядит реальное внедрение Rust в критическую инфраструктуру: без громких лозунгов, но с максимальной пользой. Сначала один опасный компонент, потом еще один, а дальше язык постепенно заходит в самые уязвимые части системы.
Rust все чаще идет не в новые игрушечные проекты, а в старые и сложные куски железа, где цена ошибки слишком высокая.
security.googleblog.com/2026/04/bringing-rust-to-pixel-baseband.html
#Rust #RustLang #MemorySafety #EmbeddedSystems #Android
🔥55❤19👍13💊3🥰2👏2🥱2😍1💯1
MaybeUninit для ручной сборки структур без лишнего drop
Когда значение собирается по частям в unsafe-коде, FFI, парсере или аллокаторе, главная проблема не в самой инициализации. Главная проблема - что делать, если ошибка произошла посередине.
Например, одно поле структуры уже создано, а второе еще нет. В этот момент нельзя дропать всю структуру целиком: для Rust она еще не является полностью готовым объектом.
Правильный подход - явно помнить, какие поля уже инициализированы, и очищать только их. Для этого используют MaybeUninit, ptr::write, drop_in_place и, когда значение уже полностью готово, assume_init_drop.
MaybeUninit нужен не “чтобы обмануть Rust”, а чтобы аккуратно управлять жизненным циклом там, где компилятор уже не может сделать это за тебя.
Для таких случаев есть MaybeUninit:
use std::mem::MaybeUninit;
struct Buffer {
data: Vec<u8>,
meta: String,
}
let mut value = MaybeUninit::<Buffer>::uninit();
unsafe {
let ptr = value.as_mut_ptr();
std::ptr::addr_of_mut!((*ptr).data).write(vec![1, 2, 3]);
// Если дальше случилась ошибка,
// дропаем только уже инициализированное поле
std::ptr::addr_of_mut!((*ptr).data).drop_in_place();
// А всю Buffer не трогаем:
// meta еще не была создана
}
Более удобный вариант для полностью инициализированного MaybeUninit<T>:
let mut value = MaybeUninit::new(String::from("hello"));
unsafe {
value.assume_init_drop();
}
MaybeUninit<T> используют не просто для создания значения “без инициализации”. Он нужен, когда ты сам управляешь моментом, в который память становится настоящим T, и сам отвечаешь за корректный drop.
Если структура собирается по частям, компилятор уже не всегда может понять, какие поля реально созданы. Поэтому unsafe-логику лучше держать внутри маленькой функции или типа, а наружу отдавать обычный safe API. Так риск ошибок остается локальным и проверяемым.
#rust #rustlang #programming #unsafeRust
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥4🥰3🥴2👍1🤗1
🧩 Новый язык программирования для AI-систем
Weft - это язык программирования, написанный на Rust, который упрощает создание AI-приложений, позволяя связывать LLM, людей и API без лишнего "проводки". Он предлагает визуальное представление программ и строгую типизацию, что делает разработку более интуитивной и безопасной.
🚀Основные моменты:
- Первоклассные взаимодействия с людьми через простые узлы.
- Возможность сворачивать группы узлов для упрощения структуры.
- Полная типизация, предотвращающая ошибки на этапе компиляции.
- Устойчивое выполнение программ, сохраняющих состояние после сбоев.
- Встроенные узлы для работы с различными сервисами и API.
📌 GitHub: https://github.com/WeaveMindAI/weft
#rust
Weft - это язык программирования, написанный на Rust, который упрощает создание AI-приложений, позволяя связывать LLM, людей и API без лишнего "проводки". Он предлагает визуальное представление программ и строгую типизацию, что делает разработку более интуитивной и безопасной.
🚀Основные моменты:
- Первоклассные взаимодействия с людьми через простые узлы.
- Возможность сворачивать группы узлов для упрощения структуры.
- Полная типизация, предотвращающая ошибки на этапе компиляции.
- Устойчивое выполнение программ, сохраняющих состояние после сбоев.
- Встроенные узлы для работы с различными сервисами и API.
📌 GitHub: https://github.com/WeaveMindAI/weft
#rust
💊25🤔11🔥6🖕3🥰2❤1🤣1🤗1
🦀 Rust против C в embedded - не на словах, а в реальном тесте.
Исследователи взяли промышленное IoT-железо и запустили на нём две реализации одной и той же функциональности.
Одна команда писала на C.
Другая - на Rust.
Системы работали параллельно несколько месяцев в реальных условиях, а не в синтетическом бенчмарке.
Итог оказался неприятным для старого аргумента «для embedded нужен только C».
Rust не проиграл C ни по памяти, ни по скорости выполнения. Более того, runtime на Ariel OS оказался даже компактнее, чем классический bare-metal стек на C.
Вывод простой: аргумент «C быстрее и легче для прошивок» теперь звучит гораздо слабее.
Rust в embedded - это вполне рабочая альтернатива.
🔗 Подоробности: https://arxiv.org/abs/2604.25679
#Rust #RustLang #EmbeddedSystems #IoT #SystemsProgramming #C
Исследователи взяли промышленное IoT-железо и запустили на нём две реализации одной и той же функциональности.
Одна команда писала на C.
Другая - на Rust.
Системы работали параллельно несколько месяцев в реальных условиях, а не в синтетическом бенчмарке.
Итог оказался неприятным для старого аргумента «для embedded нужен только C».
Rust не проиграл C ни по памяти, ни по скорости выполнения. Более того, runtime на Ariel OS оказался даже компактнее, чем классический bare-metal стек на C.
Вывод простой: аргумент «C быстрее и легче для прошивок» теперь звучит гораздо слабее.
Rust в embedded - это вполне рабочая альтернатива.
🔗 Подоробности: https://arxiv.org/abs/2604.25679
#Rust #RustLang #EmbeddedSystems #IoT #SystemsProgramming #C
🔥50❤10🥰5🤔2🍓2😁1
Rust-приложение, которое превращает скучный терминал в живой dashboard
Splashboard - это splash screen для терминала, написанный на Rust. Открываешь новый shell - и вместо пустого экрана видишь контекст по проекту.
Он может показывать Git-статус, состояние CI, открытые PR, contribution heatmap и даже фазу Луны. Да, зачем-то это тоже есть.
Главная фишка в DX: репозиторий сам может описать свой dashboard через один
Под капотом Rust и
Вот так выглядит нормальный zero-overhead DX: не ещё одна тяжёлая панель в браузере, а быстрый TUI прямо там, где разработчик и так живёт - в терминале.
🔗 http://github.com/unhappychoice/splashboard
#Rust #RustLang #CLI #TerminalTools #OpenSource #DeveloperTools #TUI #Ratatui #Rustacean
Splashboard - это splash screen для терминала, написанный на Rust. Открываешь новый shell - и вместо пустого экрана видишь контекст по проекту.
Он может показывать Git-статус, состояние CI, открытые PR, contribution heatmap и даже фазу Луны. Да, зачем-то это тоже есть.
Главная фишка в DX: репозиторий сам может описать свой dashboard через один
dashboard.toml. Заходишь в папку проекта через cd - и терминал сразу подхватывает нужный контекст без флагов, ручной настройки и лишней возни.Под капотом Rust и
ratatui, работает кроссплатформенно, пакет доступен на crates.io.Вот так выглядит нормальный zero-overhead DX: не ещё одна тяжёлая панель в браузере, а быстрый TUI прямо там, где разработчик и так живёт - в терминале.
🔗 http://github.com/unhappychoice/splashboard
#Rust #RustLang #CLI #TerminalTools #OpenSource #DeveloperTools #TUI #Ratatui #Rustacean
👍30❤10🥰4🥴4😁2🤗1
Обычно есть два подхода.
Первый - собрать всё дерево документа целиком. Так делают Wadler-style pretty printers. Это выразительно, но в Rust быстро упирается в память, аллокации и указатели.
Второй - стримить вывод по кускам. Так работает Oppen-style подход. Он легче по памяти, но часто принимает локально хорошие решения и не всегда находит глобально лучший layout.
Автор предлагает третий вариант: не хранить документ как рекурсивный enum, а описывать его через trait
Doc.То есть
Text, Concat, Group, Nest и другие элементы становятся отдельными типами, которые умеют сами себя рендерить через layout().Звучит как мелкая архитектурная правка, но эффект большой: меньше лишних аллокаций, меньше прыжков по памяти, гибче управление
Box, Rc и другими стратегиями хранения.В proof-of-concept реализации pye автор получил до 60x ускорения по сравнению с прямой Rust-реализацией алгоритма из paper “A Pretty Expressive Printer”. А в обновлённых тестах вариант с таким дизайном и greedy-алгоритмом местами обгонял
pretty и arena-версию больше чем в 10 раз.В Rust производительность часто ломается не только на алгоритме, но и на форме данных.
Иногда enum выглядит красиво, но trait-based дизайн лучше ложится на память, ownership и реальные оптимизации компилятора.
blog.wybxc.cc/blog/pretty-printer-pye/
#Rust #RustLang #Compilers #OpenSource #SystemsProgramming
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍11❤6❤🔥3🥰1👌1
Microsoft выложила практический гайд Rust: Patterns & Engineering How-Tos - не для тех, кто только открыл
println!, а для разработчиков, которые уже упёрлись в реальные production-вопросы.Что внутри:
- type-state и newtype для безопасного дизайна API
- PhantomData для lifetime branding, variance и zero-cost типизации
- channels, actors и concurrency-паттерны
- async pitfalls, где Rust чаще всего ломает ожидания новичков
- error handling через
thiserror и anyhow- тестирование через unit, integration, doc tests и
proptest- benchmarking через
criterionЭто особенно полезно для тех, кто приходит из C++, C# или Go и внезапно понимает, что borrow checker - это не главный враг. Главная сложность в Rust - выбрать правильную форму абстракции до того, как код превратится в набор lifetime-костылей.
Если вы уже прошли Rust Book, но всё ещё зависаете на generics, trait bounds, PhantomData, async и тестировании, это очень хороший следующий шаг.
https://microsoft.github.io/RustTraining/rust-patterns-book/
#rust #rustlang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥21❤7🥱4🥰1😁1🤗1
Скотт Чакон, сооснователь GitHub, переписал Git на Rust. С помощью ИИ-агентов.
Проект называется Grit. Это новая реализация Git с нуля: library-first, memory-safe и почти полностью на безопасном Rust. Она уже проходит 99,3% собственного тестового набора Git — 41 715 из 42 001 теста.
Цифры:
* 360 000+ строк Rust
* 7 000+ коммитов
* 500+ pull request’ов
* около 45 млрд токенов через Claude, Cursor и Codex
* примерно $10–15 тыс. затрат на ИИ
Что интересного:
* library-first дизайн, без постоянного fork/exec для каждой Git-операции
* reentrant, linkable, modular архитектура: Git можно напрямую встраивать в GitButler, Jujutsu, Zed и другие инструменты
* потенциальная WASM-сборка: Git-команды можно запускать в edge functions
* лицензия MIT вместо GPL
* почти полностью safe Rust: только один FFI-модуль для date/time
Отдельно интересен сам разбор разработки.
Это честный взгляд на agentic coding в большом масштабе: агенты, которые «читерят» в тестах, тихо ломают код, создают проблемы с координацией и превращают Cursor в режим бесконечного гринда.
Стоит прочитать:
http://blog.gitbutler.com/true-grit
#Rust #RustLang #Git #OpenSource #AIAgents #SystemsProgramming #DevTools
Проект называется Grit. Это новая реализация Git с нуля: library-first, memory-safe и почти полностью на безопасном Rust. Она уже проходит 99,3% собственного тестового набора Git — 41 715 из 42 001 теста.
Цифры:
* 360 000+ строк Rust
* 7 000+ коммитов
* 500+ pull request’ов
* около 45 млрд токенов через Claude, Cursor и Codex
* примерно $10–15 тыс. затрат на ИИ
Что интересного:
* library-first дизайн, без постоянного fork/exec для каждой Git-операции
* reentrant, linkable, modular архитектура: Git можно напрямую встраивать в GitButler, Jujutsu, Zed и другие инструменты
* потенциальная WASM-сборка: Git-команды можно запускать в edge functions
* лицензия MIT вместо GPL
* почти полностью safe Rust: только один FFI-модуль для date/time
Отдельно интересен сам разбор разработки.
Это честный взгляд на agentic coding в большом масштабе: агенты, которые «читерят» в тестах, тихо ломают код, создают проблемы с координацией и превращают Cursor в режим бесконечного гринда.
Стоит прочитать:
http://blog.gitbutler.com/true-grit
#Rust #RustLang #Git #OpenSource #AIAgents #SystemsProgramming #DevTools
🔥41👍11❤10🤣5🤔4💊4🥰1👏1🤗1
Но тут есть важная разница.
В C, если вы вызвали функцию не так, например передали
NULL туда, где библиотека этого не ждала, и получили segfault, это часто называют неправильным использованием API.То есть ответственность перекладывается на разработчика: сам виноват, надо было читать документацию.
В Rust логика другая.
Если функция помечена как safe, она не должна приводить к memory bugs. Даже если вы передали странные данные, даже если сценарий неидеальный. Safe Rust по контракту обязан оставаться memory-safe.
Поэтому если safe-функция в Rust падает с segfault или приводит к проблеме памяти, это уже не «ты неправильно использовал API». Это баг библиотеки. И такой случай действительно может стать CVE.
Сырые числа CVE у Rust и C/C++ нельзя сравнивать напрямую.
В C/C++ огромный класс проблем считается нормальным риском неправильного использования. В Rust тот же класс проблем считается нарушением гарантий safe API.
Именно поэтому CVE в Rust часто говорит не «Rust такой же небезопасный», а наоборот: экосистема строже относится к тому, что safe-код вообще не должен ломать память.
Хороший разбор от Jakub Beránek из команды разрабов компилятора Rust:
http://kobzol.github.io/rust/2026/06/15/how-memory-safety-cves-differ-between-rust-and-c-cpp.html
#Rust #RustLang #MemorySafety #Security #CVE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32❤13🔥6🥰2🤗1
Forwarded from Анализ данных (Data analysis)
Исследователи NVIDIA перенесли модель владения Rust в GPU-kernels.
Paper: “Fearless Concurrency on the GPU”. В нём представлен cuTile Rust.
Проблема была в том, что при написании кастомных GPU-ядер на Rust разработчикам фактически приходилось выходить за пределы гарантий безопасности Rust.
cuTile Rust пытается это исправить:
* mutable outputs разбиваются на непересекающиеся части
* запуск kernels сохраняет правила ownership от host до device
* при необходимости остаются локальные opt-out механизмы для низкоуровневого контроля
Производительность тоже держится на уровне:
* 7 TB/s для element-wise операций на NVIDIA B200
* 2 PFlop/s для GEMM, это 96% от cuBLAS
* результат сопоставим с cuTile Python в пределах погрешности измерений
Авторы также собрали Grout, inference engine поверх cuTile Rust, и прогнали реальные модели:
* 171 tokens/s для Qwen3-4B на RTX 5090
* 82 tokens/s для Qwen3-32B на B200
* конкурентный уровень рядом с vLLM и SGLang
Итог - безопасный и идиоматичный Rust почти на полной CUDA-производительности.
Для Rust в ML-инфраструктуре это большой шаг.
http://arxiv.org/abs/2606.15991
#Rust #RustLang #GPU #CUDA #MachineLearning #SystemsProgramming #NVIDIA
@data_analysis_ml
Paper: “Fearless Concurrency on the GPU”. В нём представлен cuTile Rust.
Проблема была в том, что при написании кастомных GPU-ядер на Rust разработчикам фактически приходилось выходить за пределы гарантий безопасности Rust.
cuTile Rust пытается это исправить:
* mutable outputs разбиваются на непересекающиеся части
* запуск kernels сохраняет правила ownership от host до device
* при необходимости остаются локальные opt-out механизмы для низкоуровневого контроля
Производительность тоже держится на уровне:
* 7 TB/s для element-wise операций на NVIDIA B200
* 2 PFlop/s для GEMM, это 96% от cuBLAS
* результат сопоставим с cuTile Python в пределах погрешности измерений
Авторы также собрали Grout, inference engine поверх cuTile Rust, и прогнали реальные модели:
* 171 tokens/s для Qwen3-4B на RTX 5090
* 82 tokens/s для Qwen3-32B на B200
* конкурентный уровень рядом с vLLM и SGLang
Итог - безопасный и идиоматичный Rust почти на полной CUDA-производительности.
Для Rust в ML-инфраструктуре это большой шаг.
http://arxiv.org/abs/2606.15991
#Rust #RustLang #GPU #CUDA #MachineLearning #SystemsProgramming #NVIDIA
@data_analysis_ml
🔥42❤10👍7🥰1👏1🤗1
Предрелизное тестирование 1.96.1
#rustlang #rust
https://blog.rust-lang.org/inside-rust/2026/06/27/1.96.1-prerelease/
#rustlang #rust
https://blog.rust-lang.org/inside-rust/2026/06/27/1.96.1-prerelease/
🔥5❤4👍3