
Состоялся релиз Rust 1.96.0 — актуальной стабильной версии популярного языка программирования. Обновление, ставшее доступным 28 мая 2026 года, можно установить через стандартную утилиту rustup (команда rustup update stable). Ключевыми нововведениями стали стабилизация новых типов диапазонов, внедрение удобных макросов для проверки шаблонов, изменение правил сборки для WebAssembly и устранение критических уязвимостей в пакетном менеджере Cargo.
Ключевые новшества
- Обновленные типы диапазонов: В стандартную библиотеку добавлены новые структуры
core::range::Range,RangeFrom,RangeInclusiveи соответствующие итераторы. Новые типы не реализуютIteratorнапрямую, а используютIntoIterator. Это позволяет им реализовывать трейтCopy, что упрощает работу с ними в качестве полей структур. Пока синтаксис0..1по-прежнему создает старые типы, но в будущем планируется полный переход на новые. - Макросы для проверки шаблонов: Внедрены макросы
assert_matches!иdebug_assert_matches!. Они упрощают диагностику, проверяя соответствие значения заданному шаблону, и выводятDebug-представление при ошибке. Макросы необходимо импортировать изcoreилиstdвручную. - Безопасность Cargo: Исправлены две уязвимости (CVE-2026–5223 и CVE-2026–5222), затрагивающие сторонние реестры. В частности, Cargo теперь отклоняет архивы с символическими ссылками, чтобы предотвратить перезапись кэша, и исправлена нормализация URL, исключающая утечку токенов. Пользователи официального crates.io в безопасности.
- WebAssembly: Отменена передача флага
--allow-undefinedдля Wasm-сборок. Теперь неопределенные символы вызывают ошибку линковки, а не превращаются в импорты «env» по умолчанию.
Изменения в языке, компиляторе и библиотеках
- Язык и компилятор: Разрешено использование
expr-метапеременных вcfg, улучшено выведение типов в кортежах, добавлена поддержка векторных регистров s390x для встроенного ассемблера. Также восстановлена возможность использования константManuallyDropкак шаблонов. - Платформы: Для Linux-целей на архитектуре LoongArch включена оптимизация
link relaxation. Профиль дляriscv64gc-unknown-fuchsiaобновлен до RVA22. - Стандартная библиотека: Добавлена поддержка итерации по диапазонам
NonZero-чисел. Стабилизированы такие интерфейсы, какLazyCellиLazyLock, а также реализацииFromдляAssertUnwindSafe. - Cargo и документация: Улучшена работа с зависимостями: теперь можно указывать Git-репозиторий и альтернативный реестр одновременно. Rustdoc стал корректнее обрабатывать
deprecated-элементы и разделять методы и ассоциированные функции в боковой панели.
Потенциальные несовместимости
Разработчикам стоит обратить внимание на возможные изменения поведения в специфических сценариях: минимальная версия LLVM теперь составляет 21, удален параметр -Csoft-float, а для архитектуры AVR тип c_double приведен к f32. Также ужесточены проверки для Pin и исправлена раскладка некоторых #[repr(Int)] перечислений.






_large_large.png)