8052
Rust programming language По всем вопросам- @haarrp @ai_machinelearning_big_data - машинное обучение @programming_books_it - бесплатные it книги @pythonl - 🐍 @ArtificialIntelligencedl - AI @datascienceiot - ml 📚 #VRHSZ
⚡️ Как запретить ошибку в работе с путями ещё до запуска программы?
В Rust путь состоит из разных компонентов: имени папки, корня, . или ... Если функция принимает произвольную строку, ей могут передать .. или абсолютный путь и неожиданно изменить результат объединения.
Автор статьи предлагает выделить обычное имя в отдельный тип NormalComponent. Тогда сигнатура говорит сама за себя:
fn join_normal(&self, name: &NormalComponent) -> AbsPath
enum дают разные гарантии, иногда полезно представить нужный вариант отдельным типом.
🦀 mold переписали с C++ на Rust
Вышел mold 3.0, первая Rust-версия быстрого линкера для Unix. Он объединяет скомпилированные части программы в исполняемый файл или библиотеку и помогает сократить ожидание при сборке.
По данным разработчиков, после переписывания скорость осталась на уровне C++-версии. Сохранились параметры командной строки и поддерживаемые архитектуры, а сборка самого mold переехала с CMake на Cargo.
Обработка повреждённых файлов стала безопаснее: обращения за границы памяти теперь проверяются. Следующая цель проекта — улучшить совместимость с GNU ld, чтобы mold мог стать линкером по умолчанию в Linux-дистрибутивах.
https://github.com/rui314/mold
Одна задача, три языка: Rust, C# или C++?
В курсе Google *Comprehensive Rust* есть упражнение: найти длину трёхмерного вектора, а затем нормализовать его. Формула одна: √(x² + y² + z²). После этого каждую координату делим на полученную длину.
На скриншотах хорошо видна разница в стиле:
- Rust: iter().fold() собирает сумму квадратов, iter_mut() меняет координаты.
- C#: ReadOnlySpan для чтения, Span для изменения и обычный foreach.
- C++: std::vector, цикл по значениям для расчёта и по ссылкам для изменения.
Для тех, кто пишет на C#: Rust fold(0.0, ...) по смыслу близок к LINQ Aggregate(0.0, ...): оба сворачивают последовательность в одно значение через аккумулятор.
Чей вариант вам понятнее с первого взгляда?
@csharp_ci
🦀 Rust 1.99 научился определять C-совместимые variadic-функции
Теперь в стабильном Rust можно писать функции с extern "C" и переменным числом аргументов через ....
Раньше Rust умел вызывать такие C-функции, например printf, а теперь их можно реализовывать прямо на Rust.
Что появилось:
- extern "C" fn(... )
- VaList, ABI-совместимый с C va_list
- VaArgSafe для контроля типов аргументов
- поддержка C-unwind
Особенно полезно для FFI, системного кода и библиотек, которые должны экспортировать C API.
Фича стабилизирована в Rust 1.99.0, релиз вышел 1 октября.rustup update stable
blog.rust-lang.org/2026/10/01/Rust-1.99.0/
🦀 Qt открывает Rust полноценный путь к кроссплатформенному UI
Qt представила Qt Bridge for Rust = слой, который позволяет писать логику приложения на Rust и напрямую подключать её к Qt Quick/QML без ручного FFI и C++-кода в проекте.
Что это даёт:
- Rust для application logic;
- QML для интерфейса;
- hardware acceleration;
- Linux, macOS и Windows;
- безопасный Rust API;
- интеграцию через привычные struct, traits и attribute macros.
Под капотом bridge генерирует Qt-обёртки для Rust-типов на этапе компиляции, поэтому их можно использовать прямо из QML.
Сейчас Rust Bridge находится в public beta. Пока для сборки всё ещё нужен C++ toolchain и qmake, но пользовательский код при этом остаётся полностью без C++.
По сути, Qt предлагает Rust-разработчикам зрелый UI-стек вместо необходимости ждать, пока нативные Rust GUI-фреймворки догонят Qt по возможностям.
Статья: https://www.qt.io/blog/rust-ui-framework-via-bridging-technology
🦀 Как доказать, что Rust-код работает правильно: Amazon рассказывает о Verus
Rust предотвращает многие ошибки работы с памятью, но программа всё ещё может вернуть неверный результат. Verus позволяет проверить, что реализация соответствует формально заданным требованиям для всех допустимых входных данных.
Разработчик описывает прямо в исходниках:
* requires - условия перед выполнением функции.
* ensures — свойства результата.
* Инварианты циклов и вспомогательные доказательства.
Дальше Verus автоматически проверяет доказательство, а разработчик при необходимости помогает ему.
В статье есть показательный пример с бинарным поиском. Недостаточно потребовать: «Если вернулся индекс, по нему находится нужный элемент». Такому условию соответствует функция, которая всегда возвращает None.
Нужно добавить второе требование: если вернулся `None`, искомого элемента действительно нет в массиве.
Amazon уже использует Verus для проверки ключевых примитивов Nitro Isolation Engine, отвечающего за изоляцию виртуальных машин. Инструмент также позволяет доказывать свойства конкурентного кода и безопасность поддерживаемых конструкций unsafe.
Гарантии относятся к заданной спецификации и принятым допущениям: полнота самих требований остаётся ответственностью разработчика.
📖 https://www.amazon.science/blog/developing-provably-correct-rust-code-with-verus
#Rust #Разработка #FormalVerification
Rust без аллокатора: `fff` снизил пиковое потребление памяти через `mmap`
Во время тестирования fff обнаружилось, что при создании большого Vec<u64> процесс потребляет заметно больше оперативной памяти, чем требуется для индекса.
Причиной оказался аллокатор, который мог резервировать лишнюю память при работе с крупными буферами.
Теперь на Unix-системах fff выделяет память напрямую через mmap:
* рассчитывает точный объём памяти
* округляет его до размера системной страницы
* создаёт приватное анонимное отображение
* работает с данными через *mut u64
* освобождает память вызовом munmap
На остальных платформах по-прежнему используется обычный Vec<u64>.
В результате fff запрашивает у ядра ровно столько страниц, сколько необходимо для хранения и обработки индекса.
🦀 Rust Pinning без магии: `Pin`, `Unpin` и `Future::poll`
Одна из самых сложных тем в Rust - зачем вообще нужен Pin и почему некоторые значения нельзя просто перемещать в памяти.
Хороший разбор строит механизм буквально с нуля и связывает его с тем, что реально встречается в async Rust:
- как работает Pin
- что означает Unpin
- почему self-referential структуры опасны
- при чём здесь Future
- почему Future::poll принимает Pin<&mut Self>
Главная идея: некоторые значения после начала использования должны оставаться по одному адресу в памяти, иначе внутренние ссылки могут стать невалидными.
Особенно полезно тем, кто пользуется async/await, но до конца не понимает, что происходит под капотом.
https://gmcgoldr.github.io/2026/08/27/pin-in-rust.html
🔥 Большой гайд по миграции с Go на Rust
Для разработчиков переход обычно упирается не в скорость, а в гарантии корректности, runtime trade-offs и ergonomics.
Внутри подробно сравниваются:go build → cargo build go test → cargo test go vet → cargo clippy nil → Option<T> error → Result<T, E>
interfaces → traits
goroutines → async/await -race → compile-time ограничения через Send / Sync
Отдельно хорошо показано, где Rust действительно выигрывает: data races, lifetime ресурсов, typed errors, отсутствие GC-пауз и более жёсткие гарантии компилятора.
Но автор не агитирует переписывать всё подряд: для большинства backend-сервисов Go остаётся достаточно быстрым и очень удобным.
Rust имеет смысл там, где цена runtime-багов уже выше, чем цена более сложной разработки.
Есть и практический раздел про постепенную миграцию сервисов, а не «rewrite from scratch».
https://corrode.dev/learn/migration-guides/go-to-rust/
@Golang_google
🦀 Rustler Weekly.
Главная новость: Microsoft перевела Rust в категорию Tier-1 - на один уровень с C++, C# и TypeScript. Новый backend связывает rustc с MSVC, поддерживает оптимизации между Rust и C++, усиленную защиту бинарников и hotpatch. Rust уже используется более чем в 100 внутренних репозиториях Microsoft.
Ещё один показательный случай: один lint в Clippy съедал до 25% времени работы. После небольшой переработки он стал быстрее в 3133 раз.
Также в выпуске - сравнение семи async runtime, опрос 2300 Rust-разработчиков, разбор лучших MCU для Rust, ESP32 как SWD-программатор для STM32 и свежие вакансии.
http://rustler.in/newsletter
Ubuntu 26.10 полностью переведён на Rust Coreutils
В пакетной базе дистрибутива Ubuntu 26.10, релиз которого намечен на 15 октября, осуществлён полный переход на инструментарий uutils coreutils (Rust Coreutils), написанный на языке Rust. Утилиты из состава Rust Coreutils полностью заменили все компоненты пакета GNU Coreutils, включая утилиты cp, mv и rm, которые в Ubuntu 26.04 поставлялись в варианте из GNU Coreutils.
Подробнее:
https://opennet.ru/66274/
https://opennet.me/66274/
🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку
Можно годами смотреть курсы, читать документацию и всё равно топтаться на месте.
А можно попасть в правильное окружение, где каждый день обсуждают новые инструменты, вакансии, реальные кейсы, ошибки и то, что уже завтра станет стандартом.
Здесь собраны папки и каналы по разным направлениям IT, чтобы ты быстрее находил нужных людей, идеи и полезный контент - без бесконечного поиска.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: /channel/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: /channel/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка Frontend: /channel/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: /channel/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подпишись и сохрани, здесь регулярно появляются новые подборки, инструменты и материалы, которые реально помогают расти быстрее.
👣 Rust стал одним из основных языков разработки внутри Microsoft - наряду с C++, C# и TypeScript.
Компания обеспечила ему полноценную поддержку: от инструментов для программистов до проверок безопасности и выпуска готового ПО.
Для Rust также подготовили общий с C++ механизм генерации машинного кода в Windows. Это позволяет использовать возможности MSVC для оптимизации, отладки и защиты программ на обоих языках.
С новой системой уже собираются более 100 репозиториев Microsoft. Сам Rust применяется в драйверах, ядре, микросервисах и приложениях.
https://rustfoundation.org/media/guest-post-rust-is-tier-1-language-at-microsoft/
🌀 upmd превращает обычный Markdown в исполняемый workflow
Можно держать инструкции, команды, зависимости и вывод терминала прямо в одном `.md`-файле, а code blocks запускать как связанные между собой задачи.
Получается что-то между документацией, task runner и живым dev-ноутбуком без отдельного YAML-конфига.
Проект написан на Rust и построен на Ratatui.
⭐ GitHub: https://github.com/rezigned/upmd
Rust 1.98.1 вышел всего с одним исправлением, но довольно неприятным.
В Rust 1.98.0 нашли ошибку компилятора при генерации vtable для trait objects.
В некоторых случаях rustc мог поставить null вместо указателя на функцию внутри vtable. Результат - undefined behavior в уже скомпилированной программе. На практике это могло закончиться обычным segfault, но формально последствия UB ничем не ограничены.
Если уже обновились до Rust 1.98.0, лучше сразу поставить 1.98.1:
rustup update stable
🦀 Burn 0.22: меньше дженериков, быстрее сборка и почти вдвое меньше VRAM в тесте CNN.
Фреймворк глубокого обучения на Rust убрал параметр бэкенда из пользовательских моделей:
// Было
struct Model<B: Backend> {
linear: Linear<B>,
}
// Стало
struct Model {
linear: Linear,
}
Device. Изменение модели затрагивает меньше кода при перекомпиляции.
🦀 Rust дайджест за неделю: новый релиз, быстрее компилятор и собственные зелёные потоки
⚡ Rust 1.99.0 вышел
Теперь можно писать функции с переменным числом аргументов и C ABI прямо на Rust. Стабилизированы Vec::into_parts и Vec::from_parts для работы с буфером вектора.
https://blog.rust-lang.org/2026/10/01/Rust-1.99.0/
🔢 Const generics получают новый дизайн
На nightly развивается Generic Const Arguments, будущая замена generic_const_exprs. Больше возможностей для выражений с generic-параметрами, но пока с ограничениями: арифметика вроде N + 1 ещё не поддерживается в gca!.
https://blog.rust-lang.org/inside-rust/2026/10/02/generic-const-args-and-you/
🧵 Зелёные потоки своими руками
Учебный runtime менее чем в 1000 строк: собственные стеки, сохранение регистров и переключение контекста на ARM64. Отличный разбор того, как несколько задач делят потоки ОС.
https://dzania.github.io/green-threads-from-scratch/
🚀 Ускорение rustc становится работой на полный день
Ник Нетеркоут присоединился к Hexcat для оптимизации компилятора. За предыдущие два месяца команда сократила среднее время компиляции в бенчмарках на 4,57%.
https://nnethercote.github.io/2026/09/30/how-to-speed-up-the-rust-compiler-in-september-2026.html
📟 Rust без операционной системы
Embassy позволяет запускать `async`-задачи прямо на микроконтроллерах, без традиционной RTOS. Таймеры, сеть, USB и работа с периферией уже входят в экосистему.
https://github.com/embassy-rs/embassy
🤖 Rustler запустил MCP-сервер
Поиск Rust-вакансий, репозиториев, issues и событий прямо из Claude, Cursor и других MCP-клиентов.
https://mcp.rustler.in/mcp/
Выпуск Rust 1.99.0. Microsoft перевёл Rust в число первичных языков
Опубликован релиз языка программирования Rust 1.99, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Подробнее:
https://opennet.ru/66386/
https://opennet.me/66386/
ИИ-агенты могут разгонять Rust-код быстрее SOTA-библиотек
Макс Вулф провёл серию экспериментов с Claude, Codex и GPT-6 Astra, заставляя агентов не просто писать код, а итеративно оптимизировать его по бенчмаркам, пока ускорение не перестанет расти.
Схема простая:
- фиксируем baseline;
- ставим измеримую цель, например минимум +20% скорости;
- после каждого изменения запускаем criterion;
- запрещаем unsafe и манипуляции с тестами;
- отдельно проверяем качество результата;
- подключаем несколько subagents для поиска альтернативных оптимизаций.
Результаты получились серьёзные.
Rust-реализация UMAP оказалась:
- в 4-15 раз быстрее `umap-learn`
- в 2-4 раза быстрее `umap-rs`
- суммарное ускорение относительно первоначальной реализации достигало 7,5-32x
Но есть важный нюанс: агенты умеют читерить.
В одном из экспериментов Claude показал ускорение в 34 500 раз, просто отключив физический движок.
Поэтому для таких систем критически нужны:
- benchmark-gates;
- regression-тесты;
- quality-checks;
- жёсткие ограничения на допустимые изменения.
https://minimaxir.com/2026/09/agentic-iteration/
❌В IT сейчас кризис джунов, но только не в кибербезе.
❗️Рынку не хватает 50 000 специалистов.
В информационной безопасности - аномальный кадровый голод. Компании готовы брать людей без опыта и растить их внутри, потому что масштаб кибератак растет в геометрической прогрессии, а 96% бизнеса имеют критические уязвимости.
Но как понять, подходит ли вам эта сфера, не тратя месяцы и сотни тысяч на обучение?
✅ Начните с базы.
🦔 Академия CyberYozh открыла доступ к бесплатному курсу Кибербезопасность в цифровой эре.
Это тест-драйв профессии через призму вашей личной безопасности.
Вы узнаете:
🛡 Как устроены современные атаки и почему данные утекают терабайтами.
🛡 Как мыслят хакеры и безопасники.
🛡 С чего начать зачистку собственного цифрового следа.
Пройдите бесплатную базу, защитите свои аккаунты и решите - возможно, кибербез - это та самая карьера, которую вы искали.
👉 Начать погружение бесплатно
🦀 NVIDIA официально идёт в native GPU programming на Rust
Теперь CUDA Rust позволяет писать GPU kernels прямо на Rust и компилировать их в PTX - без необходимости держать kernel-код на C++ или другом языке.
NVIDIA развивает сразу два подхода:
SIMT через `cuda-oxide`
- привычная CUDA-модель: один thread → одна операция
- полный контроль над потоками и памятью
- custom rustc backend → MIR → LLVM → PTX
- memory safety проверяется на этапе компиляции
Tile через `cutile-rs`
- работа не с отдельными потоками, а с блоками данных
- компилятор сам решает, как разложить вычисления по GPU
- stable Rust 1.89+
- CUDA 13.3
- уже используется в Hugging Face Grout и mistral.rs
Ownership и типы позволяют ловить часть GPU race conditions и aliasing-ошибок ещё до запуска kernel.
NVIDIA прямо пишет, что в 2026 году начинает всерьёз развивать CUDA Rust и планирует наращивать поддержку в 2027+.
Пока оба проекта ранние и не production-ready, но направление очень показательное:`Rust → native GPU kernels → PTX → CUDA`
https://developer.nvidia.com/blog/introducing-cuda-rust-two-tracks-for-writing-gpu-kernels/
Участвуй во всероссийском ИТ-чемпионате МТС True Tech Champ 2026 c призовой фондом 10 250 000 рублей.
Если тебе нравятся алгоритмы, структуры данных и задачи на чистую логику — участвуй в алгоритмическом треке с индивидуальным зачетом.
Решай задачи разного уровня сложности: от базовых до тех, что проверяют скорость мышления и умение оптимизировать решения за ограниченное время.
В финале лучшие 120 участников алгоритмического трека сразятся в лайв-кодинге за шесть призовых мест и 2 750 000 рублей. Всех финалистов ждут:
— Лимитированный мерч;
— Сертификаты об участии;
— Масштабное мероприятие с выступлениями хэдлайнеров и фестивальными активностями.
Успей зарегистрироваться и пройти отборочный этап до 27 сентября.
Erid: 2VSb5xSd2i6
🔥 LeetCode прямо в терминале, без браузераleetrs — TUI-клиент для LeetCode, в котором можно искать задачи, открывать их, писать решения, запускать тесты и отправлять код на проверку прямо из терминала.
Есть fuzzy search, интеграция с Neovim, запуск тест-кейсов и submit на LeetCode.
Проект написан на Rust и использует ratatui.
GitHub: github.com/shadowmkj/leetrs
⚡️ Одинаковый async/await - разное поведение программы
Исследователи Brown University сравнили семь реализаций асинхронности: JavaScript, C#, Swift, Tokio, Smol, Asyncio и Trio. Ни одна пара не показала полностью одинаковую семантику.
В простом 12-строчном примере функция запускает фоновую запись в лог и завершает работу. Результат зависит от среды:
* JavaScript: AC
* C#: C
* Tokio: ACB
* Swift: AC
* Trio: ABC
Авторы выделили девять параметров, влияющих на выполнение: ленивость, гарантии приостановки, время жизни задачи, сила ссылок, уничтожение, передача исключений, обработка отмены, её направление и сохранение задачи.
Особенности Rust:
* вызов async fn только создаёт Future - выполнение начинается после опроса через runtime
* задача не получает внутренний сигнал отмены, как в Swift или Python с Trio
Одинаковый синтаксис скрывает разные правила запуска, отмены и завершения задач.
http://cel.cs.brown.edu/blog/design-space-async-await
Rust-компилятор случайно замедлил WebAssembly-интерпретатор на 50% - и поиск этой причины стал главным ускорением Wasmi 2.0.
Wasmi 2.0 вышел сегодня и теперь работает примерно в 2,2 раза быстрее версии 1.0. Его используют Typst, Zellij, Stellar Soroban и Ripple.
Во время бенчмарков разработчик заметил, что другой интерпретатор, Stitch, потерял около 30% скорости между Rust 1.91 и 1.92.
Причина оказалась в MIR-оптимизации, которую Rust 1.92 включил по умолчанию. Она объединила два отдельных пути dispatch в одну точку ветвления.
Обычно такая оптимизация полезна. Но здесь она сломала предсказание переходов CPU: вместо двух веток с понятной историей процессор получил одну с перемешанным поведением.
После исправления Stitch вернул скорость. Потом ту же проблему нашли и в Wasmi.
Результат: CoreMark вырос примерно с 2800 до более 4200.
Что ещё появилось в Wasmi 2.0:
- accumulator registers, чтобы чаще держать операнды прямо в регистрах CPU
- lock-free карта функций без лишних lookup при вызовах
- SIMD без прежнего штрафа в 5-10% просто за факт включения
Очень показательный случай, когда «оптимизация» компилятора делает код медленнее, а реальная причина лежит уже на уровне branch predictor процессора.
http://wasmi-labs.github.io/blog/posts/wasmi-v2.0
🦀 Rust для game hacking: внешний ESP и overlay-интерфейсы
Вышла 5-я глава курса по Rust Game Hacking.
Разбирают:
- прозрачные overlay-окна поверх игры
- модульный UI через closures
- асинхронное отслеживание положения и размера окна
- архитектуру внешнего ESP без внедрения интерфейса прямо в игровой процесс
Полезный материал для тех, кто изучает Rust, low-level UI и работу с окнами в реальном времени.
https://guidedhacking.com/threads/rust-external-esp-rgh105.21347/
⚡️ Интерактивные flowcharts прямо в терминалеrataflow — open source-библиотека на Rust для создания node-based интерфейсов прямо в TUI.
Поддерживает:
— перетаскивание нод
— соединения между блоками
— pan и zoom
— автоматические layouts
— интерактивное управление
Проект построен поверх Ratatui, так что полноценный визуальный редактор может работать вообще без браузера и GUI.
Live demo: https://rataflow.furkankly.dev
GitHub: https://github.com/furkankly/rataflow
🦀 Анонс rustup 1.29.1
Главное:
- rustup update теперь проверяет обновления параллельно
- несколько компонентов через rustup component add устанавливаются одновременно
- rustup doc --serve поднимает локальный HTTP-сервер с документацией
- добавлена официальная поддержка aarch64-pc-windows-gnullvm
- исправлены проблемы установки на Windows
- отменённые установки больше не оставляют неожиданные файлы на диске
- термин target triple заменили на target tuple
Обновиться:rustup self update
или обычным:rustup update
https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/