
12 ноября 2026 года состоялся релиз языка программирования Rust 1.100. Вклад в разработку этого обновления внесли 281 программист со всего мира. Предыдущая стабильная версия решения состоялась в начале октября 2026 года. Версия проекта Rust 1.80 вышла в июле 2024 года. Релиз Rust 1.85.0 (Rust 2024) состоялся 20 февраля. Выпуск Rust 1.87.0 и празднование десяти лет после выхода Rust 1.0 произошло в мае 2025 года.
Текущий релиз включает в себя ряд стабилизированных API, доработанную стандартную библиотеку, в проекте добавлены средства контроля предупреждений Cargo и отображаются сообщения компоновщика.
Язык Rust сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Основные изменения и дополнения в Rust 1.100 (Rust, Cargo и Clippy):
-
тип never (обозначаемый как !) наконец-то получил статус стабильного. На это ушло десять лет и пять предыдущих, неудачных попыток стабилизации — но теперь тип ! официально стал частью стабильной версии языка. Тип never (!) в Rust предназначен для обозначения вычислений, которые никогда не завершаются получением какого‑либо значения. Любой код, следующий за выражением never type, считается недостижимым. Выражения, завершающие поток управления, такие как return, Break и std::process::exit, также имеют тип type !;

-
стабилизированы ключевые компоненты API распределителя памяти (Allocator API). Также появилась возможность получать уведомления о неиспользуемых зависимостях в менеджере пакетов Cargo; кроме того, была проведена работа по снижению вероятности конфликтов в кэше Cargo;
-
появился DropGuard — новый вспомогательный инструмент стандартной библиотеки, который выполняет замыкание в момент выхода значения из области видимости (в том числе при досрочном возврате из функции или возникновении паники). В нем предусмотрен метод dismiss, позволяющий отменить выполнение операции очистки; это полезно в тех случаях, когда при возникновении ошибки необходимо откатить внесённые изменения;
-
в Cargo появилась новая функция — «min-publish-age» (минимальный возраст публикации), которая вводит своего рода «период ожидания» для зависимостей. Поскольку вредоносные пакеты зачастую обнаруживаются в течение нескольких часов или дней после публикации, настройка глобального параметра min-publish-age позволяет, например, исключить использование пакетов (крейтов), опубликованных за последние 3–5 дней;
-
в разряд стабильных переведена новая порция API:
-
impl PartialEq<Cow> for Vec -
impl PartialEq<Cow> for &[T] -
impl PartialEq<Cow> for &mut [T] -
std::alloc::Allocator -
std::alloc::Global -
std::alloc::System -
impl Allocator for Global -
impl Allocator for System -
impl Allocator for &A -
impl Allocator for Box -
impl Allocator for &mut A -
impl Allocator for Arc -
impl Allocator for Rc -
Box::new_in -
Box::from_raw_in -
Box::from_non_null_in -
Box::into_raw_with_allocator -
Box::into_non_null_with_allocator -
Box::allocator -
Vec::new_in -
Vec::with_capacity_in -
Vec::from_raw_parts_in -
Vec::from_parts_in -
Vec::into_raw_parts_with_allocator -
Vec::into_parts_with_allocator -
Vec::allocator -
Child::main_thread_handle -
impl Default for std::sync::Once -
bool::toggle -
Box::take -
Box::map -
Rc::map -
Arc::map -
impl AsRef for ! -
impl AsMut for ! -
core::mem::DropGuard -
core::mem::conjure_zst -
UnsafeCell::replace -
UnsafeCell::as_ref_unchecked -
UnsafeCell::as_mut_unchecked -
str::trim_prefix -
str::trim_suffix -
[T]::trim_prefix -
[T]::trim_suffix -
Path::trim_prefix -
Vec::from_fn -
os::windows::process::CommandExt::show_window
-
Источник: habr.com