10 часов назад
Выпуск Rust 1.96.0

28 мая 2026 года состоялся релиз языка программирования Rust 1.96. Вклад в разработку этого обновления внесли 378 программистов со всего мира. Предыдущая стабильная релиз решения состоялась в апреле 2026 года. Релиз проекта Rust 1.80 вышла в июле 2024 года. Выпуск Rust 1.85.0 (Rust 2024) состоялся 20 февраля. Выпуск Rust 1.87.0 и празднование десяти лет после выхода Rust 1.0 произошло в мае 2025 года.
Текущий выпуск включает в себя ряд стабилизированных программный оболочку, доработанную стандартную библиотеку, свежий набор типов Range, реализующих механизм копирования, утверждения с сопоставлением с паттерном и два исправления уязвимостей в Cargo:
CVE-2026-5223 — уязвимость средней степени опасности, связанная с извлечением архивов крейтов с символическими ссылками;
CVE-2026-5222 — уязвимость низкой степени опасности, связанная с аутентификацией с использованием нормализованных URL-адресов.
Язык Rust сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Основные изменения и дополнения в Rust 1.96 (Rust, Cargo и Clippy):
нновый набор типов Range. Многие пользователи ожидают, что Range и связанные с ним типы core::ops будут иметь интерфейс Copy, но это не так: они напрямую реализуют оболочку Iterator, а реализация Iterator и Copy для одного и того же типа является ошибкой, поэтому этого удалось избежать. В RFC3550 предложен набор заменяющих типов Range, которые реализуют IntoIterator вместо Iterator, что означает, что они равным образом могут иметь интерфейс Copy. Часть стандартной библиотеки этого RFC теперь стабильна и включает в себя:
core::range::Rangecore::range::RangeFromcore::range::RangeInclusiveAssociated iterators
В ближайшем будущем в версии Rust также будут добавлены core::range::RangeFull и core::range::RangeTo в качестве реэкспортируемых типов из core::ops (они не реализуют Iterator и уже реализуют Copy), а core::range::legacy::* станет новым местом для текущих диапазонов. Синтаксис диапазонов, например 0..1, пока что приводит к устаревшим типам, но в будущих версиях будет обновлен до типов core::range. Благодаря этим улучшениям теперь можно хранить методы доступа к срезам в типах Copy без разделения start и end:

свежий тип RangeInclusive равным образом делает свои поля публичными, в отличие от устаревшей версии, которая избегала отображения состояния исчерпанного итератора. С новым типом это не задача, поскольку его необходимо преобразовать для начала итерации;
разработчикам библиотек следует рассмотреть функция использования реализации RangeBounds в публичном api, которая принимает как устаревшие, так и новые типы диапазонов. Если требуется конкретный тип, предпочтительнее использовать новые диапазоны, поскольку в конечном итоге они станут стандартными;
проверка соответствия шаблонам. Новые макросы assert_matches! и debug_assert_matches! проверяют, соответствует ли значение заданному шаблону, в противном случае выдавая сообщение об ошибке с отладочным представлением значения. По сути, они аналогичны assert!(matches!(..)) и debug_assert!(matches!(..)), но выводимое значение повышает вероятность диагностики ошибки. Эти новые макросы не были добавлены в типовой пакет prelude, поскольку они будут конфликтовать с популярными сторонними библиотеками, предоставляющими макросы с тем же именем. Вместо этого их следует импортировать вручную из core или std перед использованием;

изменения в целевых объектах WebAssembly. Целевые объекты WebAssembly больше не передают параметр --allow-undefined компоновщику, что означает, что неопределённые символы при компоновке теперь являются ошибкой компоновщика, а не преобразуются в импорт WebAssembly из модуля "env". Это изменение предотвращает компоновку модулей, если не определены все связанные с компоновкой символы, что позволяет выявлять ошибки на ранних стадиях и предотвращать случайные проблемы с именованием символов или подобными вещами. Неопределённые символы, связанные с компоновкой, часто указывают на ошибки, связанные со сборкой, или неправильную конфигурацию. Тем не менее, если старое поведение является запланированным, его можно повторно включить с помощью RUSTFLAGS=-Clink-arg=--allow-undefined или отредактировав исходный исходник и используя #[link(wasm_import_module = "env")] в блоке, определяющем символ;
в пакетном менеджере Cargo устранена уязвимость CVE-2026-5223, которая может использоваться для перезаписи исходного кода другого crate-пакета в локальном кэше пакетов из того же репозитория через манипуляции с символическими ссылками внутри crate-а пакетов. Уязвимость проявляется только при работе со сторонними репозиториями пакетов и не затрагивает пользователей репозитория crates.io, так как там запрещена загрузка пакетов с символическими ссылками;
в разряд стабильных переведена новая порция программный интерфейс, в том числе стабилизированы методы и реализации типажей:
assert_matches!debug_assert_matches!From<T> for AssertUnwindSafe<T>From<T> for LazyCell<T, F>From<T> for LazyLock<T, F>core::range::RangeToInclusivecore::range::RangeToInclusiveItercore::range::RangeFromcore::range::RangeFromItercore::range::Rangecore::range::RangeIter
Читают сейчас

19 минут назад
MSI представила игровой QD-OLED-монитор 31,5" с тремя режимами работы
Организация MSI представила 31,5-дюймовый игровой QD-OLED-монитор MPG OLED 322URDX36. Производитель заявляет, что это начальный в мире монитор с поддержкой трёх режимов работы — 4K при 360 Гц, 2K при

1 час назад
GNOME Circle не будет принимать приложения, созданные с использованием ИИ
Площадка GNOME Circle, где размещаются приложения и библиотеки, созданных с использованием технологий GNOME, не будет принимать приложения, созданные с использованием ИИ. Такое подход принял комитет п

1 час назад
Стартап-компания Shift предлагает наводить порядок дома в обмен на информация для обучения роботов
Стартап-компания Shift предлагает бесплатную уборку домов. Уборщики, присланные компанией, пропылесосят, вымоют полы, вытрут все поверхности, а процесс будет фиксироваться на видео. Эти материалы зате

1 час назад
Техдолг под капотом ИИ-бума: исходник пишется быстро, чинится долго
В 2026 году многие авторы уже отказываются писать код без ИИ-агентов — к такому выводу пришла исследовательская лаборатория METR. Команда попыталась повторить свой нашумевший эксперимент 2025 года, гд

2 часа назад
В кибербезопас‑компании «С‑Терра» сменилась вся команда топ‑менеджеров после перехода под контроль «Ростеха»
В компании «С-Терра» ушла вся команда топ-менеджеров. Руководители уволились по собственному желанию через месяц после перехода компании под контроль госкорпорации «Ростех». Новым генеральным директор