The OpenNET Project / Index page

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

Выпуск Rust 1.93. Проекты Rex, Fjall 3 и Arti 1.9.0

22.01.2026 22:53 (MSK)

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

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

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

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

  • Встроенная в поставку Rust стандартная си-библиотека Musl, используемая при статической компоновке для целевых платформ "*-linux-musl" (aarch64-unknown-linux-musl, x86_64-unknown-linux-musl, powerpc64le-unknown-linux-musl и т.п.) на системах без Musl, обновлена до версии 1.2.5. Минимально поддерживаемая версия Musl при динамической компоновке также поднята до выпуска 1.2.5. Ранее в Rust использовалась версия Musl 1.2.3, в которой имелись проблемы в реализации DNS-резолвера. В версии Musl 1.2.4 в DNS-резолвер была добавлена возможность отправки запроса по TCP в случае неудачного обращения по UDP, что решило проблему с запросом больших DNS-записей и наладило совместимость с рекурсивными DNS-серверами, не поддерживающими отдачу части результата в обрезанных UDP-ответах. В версии Musl 1.2.5 в DNS-резолвере реализована обработка ответов с длинными последовательностями CNAME и решена проблема, из-за которой отбрасывались некоторые большие ответы, передаваемые через TCP.
  • Стандартная библиотека переработана для решения проблем с реентерабельностью при использовании в глобальных аллокаторах памяти, написанных на Rust, макроса std::thread_local! и функции std::thread::current, приводивших к бесконечной рекурсии. Для исключения ситуации, когда std::thread_local! и std::thread::current при попытке выделения памяти вызывали тот же аллокатор в котором используются, в них теперь напрямую применяется системный механизм выделения памяти.
  • Внутри блоков "asm!" с ассемблерным кодом разрешено использование атрибутов "cfg", что, например, позволяет управлять задействованием расширенных наборов команд CPU в контексте отдельных выражений внутри asm-блока (ранее атрибуты "cfg" могли задаваться только для asm-блока целиком).
    
       asm!( // или global_asm! или naked_asm!
           "nop",
           #[cfg(target_feature = "sse2")]
           "nop",
           // ...
           #[cfg(target_feature = "sse2")]
           a = const 123, // only used on sse2
       );
    
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • Целевая платформа "riscv64a23-unknown-linux-gnu" переведена на второй уровень поддержки, который подразумевает гарантию сборки, но отсутствие гарантий при прохождении тестового набора.



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

  • Для ядра Linux развивается фреймворк Rex, позволяющий создавать дополнения для ядра Linux на языке Rust, которые можно использовать для расширения функциональности ядра вместо eBPF. Rex предоставляет те же гарантии безопасности, что и eBPF, но использует для изоляции и обеспечения безопасности возможности языка Rust и легковесный Runtime. Для подобных программ не применяется верификатор, а программы компилируются в нативный код компилятором Rust.

    В Rex-программах допускается использование подмножества языка Rust, предоставляющего гарантии безопасности. В текущем виде поддерживается 5 типов программ eBPF: kprobe, perf_event, tracepoint, xdp и tc. Имеется возможность вызывать вспомогательные функции eBPF, взаимодействовать с map-структурами eBPF, управлять ресурсами ядра, обрабатывать исключения и использовать обвязки и абстракции над структурами ядра.

  • Доступен выпуск Fjall 3, написанного на Rust встраиваемого хранилища, работающего с данными в формате ключ-значение. Хранение данных производится в форме лога c использованием LSM-дерева (Log-Structured-Merge), как в RocksDB, при котором изменения записываются через добавление данных в конец файла. Для обращения к БД предлагается API в стиле BTreeMap. Поддерживаются такие возможности, как пространства имён, прямой и обратный поиск по диапазонам, встроенное сжатие, сериализируемые транзакции, раздельное хранение ключей и связанных с ними очень больших значений, автоматическое фоновое обслуживание БД. Код открыт под лицензией Apache 2.0.
  • Проект Tor опубликовал выпуск Arti 1.9.0, реализации инструментария Tor, написанной на языке Rust. Когда код Arti достигнет уровня, способного полностью заменить вариант на Си, разработчики Tor намерены придать Arti статус основной реализации Tor и постепенно прекратить сопровождение реализации на Си. В новой версии продолжена реализация функциональности для релеев и серверов директорий (Directory Authority), улучшена поддержка работы с динамически назначаемыми портами (proxy.socks_listen = "auto"), добавлен экспериментальный API для управления ключами для onion-сервисов.


  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: Проект Microsoft по использованию AI для перевода кодовой базы с C/C++ на Rust
  3. OpenNews: Уязвимость в Binder, подсистеме ядра Linux, написанной на Rust
  4. OpenNews: Выпуск uutils 0.5, варианта GNU Coreutils на языке Rust
  5. OpenNews: Выпуск Rust 1.92. Rust-проекты для GUI, sandbox-изоляции и создания прошивок
  6. OpenNews: Поддержка Rust переведена из экспериментальных в основные возможности ядра Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64660-rust
Ключевые слова: rust, fjall, rex, arti
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Карлос Сношайтилис (ok), 00:19, 23/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скромный релиз
     
  • 1.3, Аноним (3), 00:26, 23/01/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     
  • 1.4, Аноним (3), 00:29, 23/01/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.5, Аноним (3), 00:29, 23/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Слава Расту!
     
  • 1.6, Аноним (6), 00:30, 23/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чё там какие-нибудь подвижки по асинхронным генераторам? Сабж даже питон неспособен заменить из-за этого. Релизы ради релизов тоже странная практика, в прошлый раз пришлось 10 раз подряд скомпилировать тулчейн раста и буквально ничего полезного не добавили.
     

  • 1.7, Аноним (3), 00:30, 23/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Слава Великому Расту, языку будущего!
     
  • 1.8, Аноним (3), 00:31, 23/01/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.9, Аноним (3), 00:32, 23/01/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.10, Аноним (3), 00:34, 23/01/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.11, Аноним (11), 00:39, 23/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Раст это хорошо или плохо?
     
     
  • 2.15, Аноним (15), 01:51, 23/01/2026 [^] [^^] [^^^] [ответить]  
  • +/

    https://x.com/LundukeJournal/status/1954262580140356048
     

  • 1.13, Аноним (13), 01:07, 23/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >asm!(

    если это асм то о какой безопасной работе с памятью речь? а если там работа с памятью безопасная тогда какой это к чёрту асм...

     
  • 1.14, Аноним (14), 01:14, 23/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что почитать по теме управления памятью? Типа как устроена память в java, регионы и так далее, не про статические проверик, при этом не на уровне hello world
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру