Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

Выпуск Rust 1.99.0. Microsoft перевёл Rust в число первичных языков

03.10.2026 12:00 (MSK)

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

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

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

Основные новшества:

  • Предоставлена возможность создания на языке Rust функций с переменным числом аргументов (variadic), экспортируемых для вызова из проектов на языке Си (C ABI). В качестве последнего элемента списка параметров в подобных функциях может указываться конструкуция "...", которая обрабатывается в Rust при помощи специального типа VaList, работающего аналогично va_list в C.
    
       unsafe extern "C" fn sum(mut args: ...) -> i32 {
           let a = unsafe { args.next_arg::<i32>() };
           let b = unsafe { args.next_arg::<i32>() };
           a + b
       }
    
       fn foo() -> i32 {
           unsafe { sum(0i32, 2i32) }
       }
    
  • Стабилизированы функции Layout::for_value_raw, mem::size_of_val_raw и mem::align_of_val_raw, позволяющие безопасно определять размер и выравнивание по сырым указателям (raw pointer), в том числе при использовании типов с динамическим размером, таких как срезы, без необходимости создания ссылок на данные.
  • В документацию добавлена рекомендация избегать освобождения памяти, на которую была получена статическая ссылка с неограниченным временем жизни (&'static) через вызов Box::leak (round-trip unleaking), так как подобное действие потенциально может привести к проблемам из-за несовместимости с будущими оптимизациями компилятора и подключаемыми механизмами выделения памяти. Вместо создания статической ссылки для временной передачи владения рекомендуется использовать сырые указатели, например, через вызов Box::into_non_null.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • В пакетном менеджере cargo реализован новый встроенный профиль "debug", аналогичный профилю "dev" (в будущем возможности для отладки и разработки планируют разделить). При сборке в CI по умолчанию отключена инкрементальная компиляция.
  • Целевая платформа riscv64-unknown-linux-musl переведена на второй уровень поддержки, который подразумевает гарантию сборки, но отсутствие гарантий при прохождении тестового набора.



Дополнительно можно отметить недавно анонсированные проекты и события, связанные с Rust:

  • Компания Microsoft перевела Rust в число языков первого уровня и обеспечит его полную поддержку на всех этапах разработки внутри компании. До этого первый уровень поддержки внутри компании предоставлялся для языков C++, C# и TypeScript. Отмечается, что Rust уже используется в более чем 100 репозиториях Microsoft. Среди прочего, компоненты на Rust уже применяются в таких продуктах, как Microsoft 365 и Copilot, а для компилятора MSVC подготовлен отдельный бэкенд rustc_codegen_utc для Rust, основанный на компиляторе rustc.

    В качестве основной цели применения Rust в Microsoft упоминается усиление защищённости кода, критичного с точки зрения безопасности. По словам технического директора Microsoft Azure около 70% всех уязвимостей в Windows вызваны проблемами при работе с памятью, которых можно избежать при использовании Rust.

  • Компания Google удалила из ядра Linux старую реализацию механизма межпроцессного взаимодействия Binder, написанную на языке Си, в пользу нового драйвера Binder IPC, переписанного на Rust. Отмечается, что за 15 лет существования старого драйвера в нём накопились значительный технический долг и обилие усложнений, которые затрудняли поиск ошибок, сопровождение и добавление новых возможностей. Драйвер Binder IPC на Rust признан основным и больше не преподносится как экспериментальная разработка.
  • Опубликован выпуск Arti 2.7.0, реализации инструментария Tor, написанной на языке Rust. Когда код Arti достигнет уровня, способного полностью заменить вариант на Си, разработчики Tor намерены придать Arti статус основной реализации Tor и постепенно прекратить сопровождение реализации на Си. В новой версии проложено развитие функциональности для релеев и серверов директорий (Directory Authority), связанной с парсингом документов, поддержкой зеркалирования серверов директорий и обработкой DNS-трафика. Добавлена реализация RPC для изменения и проверки конфигурации. Устранено несколько уязвимостей - администраторам onion-сервисов рекомендовано срочно обновить свои системы.


  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: NVIDIA представила CUDA Rust для разработки GPU-ядер на языке Rust
  3. OpenNews: Релиз серверной JavaScript-платформы Bun 1.4, переписанной с Zig на Rust
  4. OpenNews: Выпуск Rust 1.98.0. Компрометация пакета arrayref, насчитывающего 53 млн загрузок за 3 месяца
  5. OpenNews: Компания Canonical представила проект по разработке транслятора с Си на Rust
  6. OpenNews: В ядро Linux 6.18 принята реализация Binder IPC для Android, написанная на Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66386-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (33) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Инопланетянин (?), 13:41, 03/10/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/–
     

  • 1.2, Аноним (3), 13:41, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/–
    Раст гарантирует безопасность во время компиляции, а психически здоровые люди ожидают гарантий во время выполнения. Поэтому раст бесполезен.
     
     
  • 2.14, Инопланетянин (?), 14:11, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ничего не знаю! Компилируется - значит работает!
     
     
  • 3.15, пох.. (?), 14:14, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    и заметь - БЕЗОПАСТНО жеж компилируется! (ой, тоже нет ;-)

     
  • 2.19, Аноним (19), 14:22, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > а психически здоровые люди ожидают гарантий во время выполнения

    Вот бы еще найти психически здоровых людей, которые такой код бы написали...

     
     
  • 3.28, Аноним (-), 14:57, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Вот бы еще найти психически здоровых людей, которые такой код бы написали...

    Насчет людей не знаю, но даже Gemini при намеке на безопасность - сделал мне довольно интересный код на си - который не каждый сишник то допрет.

     
     
  • 4.34, Аноним (34), 15:33, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Если писать полу грамотно, то тогда выглядит так: для не сильно разбирающихся слово допрет выглядит написал вместо буквы ё в слове допрёт букву е осознанно. А более грамотные кто-то, не поверит и предположит, что в твоём предложении слово допрет одна буква пропущена другая ошибочно не та нажата на клавиатуре, не поверив что ты совсем баран меняешь осознанно букву ё на е и не должно быть слово дропнет. "Насчет людей не знаю, но даже Gemini при намеке на безопасность - сделал мне довольно интересный код на си - который не каждый сишник то дропнет" Зачем заменил в слове букву ё на е?
     
  • 2.20, Аноним (-), 14:23, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Оно на твои слова ответило Кому верить Этот аргумент неверен, поскольку он ст... большой текст свёрнут, показать
     
     
  • 3.24, Аноним (-), 14:44, 03/10/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     

  • 1.4, Аноним (4), 13:42, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > Компания Google удалила из ядра Linux

    Хозяин -- барин...

     
  • 1.5, Аноним (5), 14:01, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    > Предоставлена возможность создания на языке Rust функций с переменным числом аргументов (variadic)

    Серьёзно, вот только сейчас?

     
     
  • 2.9, krakotay (?), 14:08, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    ... в extern (биндинги к C)
     
  • 2.10, Аноним (10), 14:09, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Даже в Паскале (который Free) это было давно.
     
  • 2.21, Нонон (?), 14:24, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Ну лучше бы они вообще этого не делали.
    А сделали видимо для совместимости с си
     

  • 1.6, Аноним (6), 14:04, 03/10/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/–
     
  • 1.7, Аноним (5), 14:05, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/–
    > Вместо создания статической ссылки для временной передачи владения рекомендуется использовать сырые указатели

    Всё возвращается на круги своя ;)

     
     
  • 2.8, Инопланетянин (?), 14:07, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    через пару лет увидим результаты
     
  • 2.27, Аноним (27), 14:53, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Не понял, боров-чокер всё?
     

  • 1.11, Аноним (11), 14:09, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/–
    >как Microsoft 365 и Copilot, а для компилятора MSVC подготовлен отдельный бэкенд rustc_codegen_utc для Rust

    https://code.visualstudio.com

     
  • 1.12, Инопланетянин (?), 14:09, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > Компания Microsoft перевела Rust в число языков первого уровня и обеспечит его полную поддержку на всех этапах разработки внутри компании. До этого первый уровень поддержки внутри компании предоставлялся для языков C++, C# и TypeScript.

    А как же Anders Hejlsberg для компилятора TypeScript взял go?

    > а для компилятора MSVC подготовлен отдельный бэкенд rustc_codegen_utc для Rust, основанный на компиляторе rustc.

    А вот и еще один компилятор. Любители говорить, что стандарт не нужен, вы тут?

     
     
  • 2.18, Аноним (18), 14:21, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > А вот и еще один компилятор. Любители говорить, что стандарт не нужен, вы тут?

    А он и не нужен, у нас уже есть компилятор - он и есть стандарт. А альтернативно одарённые которые хотят rust в своих отсталых gcc и msvc - те пусть по компилятору пишут стандарт, а по нему уже свои поделки, только пусть не удивляются когда стандарт станет неактуальным, и что они всегда будут в догоняющих. А те кто сидит на nighly позаботятся чтобы у них ничего не собиралось. Хорошего дня.

     
     
  • 3.22, Инопланетянин (?), 14:26, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >> А вот и еще один компилятор. Любители говорить, что стандарт не нужен, вы тут?
    > А он и не нужен, у нас уже есть компилятор - он
    > и есть стандарт. А альтернативно одарённые которые хотят rust в своих
    > отсталых gcc и msvc - те пусть по компилятору пишут стандарт,
    > а по нему уже свои поделки, только пусть не удивляются когда
    > стандарт станет неактуальным, и что они всегда будут в догоняющих. А
    > те кто сидит на nighly позаботятся чтобы у них ничего не
    > собиралось. Хорошего дня.

    Потом не удивляйтесь только, что выложенные ms либы для раста работают только под msvc.

     
     
  • 4.30, Аноним (-), 14:59, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Потом не удивляйтесь только, что выложенные ms либы для раста работают только под msvc.

    Было б удивительно если б майкрософт как-то так НЕ делал. А то что он так делает - это их дефолтный modus of operandi.

     
  • 2.23, Аноним (23), 14:41, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А нафига нужен Rust для транспайлера? Чтобы замем?
     
     
  • 3.25, Инопланетянин (?), 14:45, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > А нафига нужен Rust для транспайлера? Чтобы замем?

    Ну он для реализации как бы взял не основной яп из конторы.

     
  • 3.26, Аноним (27), 14:52, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Чтобы замем?

    ЗА МЕМ! УРААА!

     

  • 1.13, Аноним (10), 14:10, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > рекомендуется использовать сырые указатели

    Вернулись к Си?!

     
     
  • 2.16, Аноним (16), 14:16, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Это другое.
     
  • 2.17, Аноним (5), 14:19, 03/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Но безопасТно вернулись.
     

  • 1.29, Аноним (29), 14:58, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    А этот ваш раст умеет код для VAX генерить? А для DEC Alpha? Нет? Ну вот то-то же.
     
  • 1.32, Аноним (32), 15:08, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    >В документацию добавлена рекомендация избегать освобождения памяти, на которую была получена статическая ссылка с неограниченным временем жизни (&'static) через вызов Box::leak (round-trip unleaking), так как подобное действие потенциально может привести к проблемам из-за несовместимости с будущими оптимизациями компилятора и подключаемыми механизмами выделения памяти.

    Уже вышла версия 1.99.0, а язык все также нестабильный и стабилизировать его не собираются.
    >Вместо создания статической ссылки для временной передачи владения рекомендуется использовать сырые указатели, например, через вызов Box::into_non_null.

    Понятно, ждем появление Rust++.

     
  • 1.33, Аноним (33), 15:15, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    лутший линукс
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: