Как стать автором
Обновить

Релиз Rust 1.87.0 и 10 лет после выхода Rust 1.0

Время на прочтение3 мин
Количество просмотров2.7K

15 мая 2025 года состоялся релиз языка программирования Rust 1.87. Вклад в разработку этого обновления внесли 244 программиста со всего мира. Версии проекта Rust 1.80 вышла в июле 2024 года. Релиз Rust 1.85.0 (Rust 2024) состоялся 20 февраля. Также сообщество Rust отмечает 10 лет после выпуска языка программирования Rust 1.0.

Проект Rust был основан в 2006 году, выпуск 0.1 был сформирован в 2012 году, а первая стабильная версия вышла 15 мая 2015 года.

Язык Rust сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

Основные изменения и дополнения в Rust 1.87:

  • в стандартную библиотеку добавлена поддержка неименованных каналов (anonymous pipe). Для создания неименованных каналов предложен метод std::io::pipe(), который может использоваться в сочетании с std::process::Command для обработки стандартных входных и выходных потоков, а также для объединения потоков stdout и stderr;

  • разрешён вызов из safe‑кода большинства встроенных в компилятор функций (Intrinsics) std::arch. Изменение применяется к встроенным функциям std::arch, которые помечены unsafe только из‑за привязки к определённой функциональности, если эта функциональность включена. Например, mm256add_epi32 можно вызывать из safe‑кода, если в приложении используется '#[target_feature(enable = «avx2»)]';

  • из блоков «asm!» с ассемблерным кодом разрешено осуществлять переходы на блоки с кодом на языке Rust, что упрощает разработку низкоуровневого кода, например, реализации оптимизаций в ядре или организации взаимодействия с оборудованием. Точка для перехода для ассемблерной команды «jmp» задаётся в макросе «asm!» при помощи нового операнда «label», содержащего блочное выражение с кодом на языке Rust;

  • разрешено точно указывать захваченные обобщённые типы и время жизни в определениях типажей с использованием возвращаемых типов impl Trait;

  • удалён второй уровень поддержки для целевой платформы i586-pc‑windows‑msvc. Рекомендуется использовать платформу i686-pc‑windows‑msvc, которая отличается поддержкой инструкций SSE2. Платформа i586-pc‑windows‑msvc потеряла смысл, так как для Windows 10 необходима поддержка SSE2, а более ранние выпуски Windows в Rust не поддерживаются.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
В каком году вы начали использовать Rust в своих проектах?
4.83% В 2015-20177
8.97% В 2018-202013
28.28% В 2021-202441
8.97% В 202513
19.31% Пока не использую, но изучаю28
22.76% Не использую Rust33
16.55% Планирую начать работать с Rust24
2.07% Свой ответ в комментарии3
Проголосовали 145 пользователей. Воздержались 10 пользователей.
Теги:
Хабы:
+6
Комментарии8

Другие новости

Работа

Ближайшие события