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

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

Выпуск Rust 1.97. Написанные на Rust ядро Zinnia и P2P-система Iroh с адресацией по ключам

10.07.2026 20:53 (MSK)

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

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

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

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

  • По умолчанию включена новая схема декорирования (mangling) имён функций, глобальных переменных и структур данных в генерируемых объектных и исполняемых файлах (-Csymbol-mangling-version=v0). Имена декорируются для предотвращения конфликтов во время компоновки разных программ, путём прикрепления специфичного контекста, такого как путь к модулю и имя crate-пакета.

    Ранее используемая схема декорирования имён, основанная на Itanium ABI, имела такие недостатки, как замена параметров дженериков на нечитаемые хэши и наличие частей компилятора, не использующих Itanium ABI, что требовало использования специфичных для Rust декодировщиков имён. В Rust 1.97 задействована по умолчанию схема декорирования, разработанная специально для Rust и лишённая отмеченных недостатков. Старую схему намерены удалить в одном из следующих выпусков.

  • В пакетный менеджер cargo встроена возможность управления реакцией на генерацию компилятором предупреждений при сборке. Добавлена переменная окружения CARGO_BUILD_WARNINGS, которая может принимать три значения: warn (по умолчанию) - вывод предупреждения на экран; allow - скрытие вывода предупреждений; deny - обработка предупреждений как ошибок, останавливающих сборку.

    В прошлых версиях для завершения сборки после вывода предупреждения приходилось указывать "-Dwarnings" в RUSTFLAGS для компилятора, но при изменении RUSTFLAGS пакетный менеджер cargo считал сборку новой, не учитывал данные в кэше и с нуля пересобирал весь проект. Перенос настройки на сторону cargo исключил сброс кэша и необходимость полной перекомпиляции при изменении режима обработки предупреждений, а также упростил включение обработки предупреждений как ошибок в системах непрерывной интеграции.

  • При сборке включено по умолчанию отображения сообщений, выводимых компоновщиком. Сообщения выводятся в форме предупреждений через специальное lint-правило "linker_messages", которое не входит в стандартную группу "warnings". При этом rustc отфильтровывает сообщения, которые являются типовыми ложными срабатываниями или нормальным поведением, оставляя предупреждения, которые могут свидетельствовать о проблемах, такие как предупреждения об устаревших опциях и нежелательных настройках. Ранее информация от компоновщика показывалась только при завершении с ошибкой, а иначе все сообщения скрывались. Для возвращения старого поведения в Cargo.toml можно добавить:
    
       [lints.rust]
       linker_messages = "allow"
    
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • Признак "const" применён в методе char::is_control.



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

  • Проект zinnia развивает модульное Unix-подобное ядро, написанное на языке Rust и распространяемое под лицензией GPLv2. Ядро поддерживает POSIX-интерфейсы и некоторые расширения из BSD и Linux, такие как epoll и timerfd. Для отрисовки и организации ввода доступны драйверы DRM (Direct Rendering Manager) и evdev. Реализованной функциональности достаточно для запуска среды рабочего стола Xfce под управлением X-сервера и композитного сервера Weston на базе Wayland. Поддерживается загрузка как в эмуляторе QEMU, так и на реальном оборудовании, таком как ноутбук ThinkPad E14 G7.
  • Представлен релиз коммуникационной библиотеки iroh 1.0, позволяющей устанавливать сетевые соединения между приложениями на разных хостах с подключением по криптографическим ключам, вместо IP-адресов (указывается ключ к которому необходимо подключиться и iroh находит связанный с ним хост и устанавливает шифрованное соединение с использованием протокола QUIC). По возможности устанавливаются прямые P2P-соединения, но если это невозможно, выполняется откат на работу через релеи, которые также применяются для обнаружения хостов по ключам. Возможен запуск своего релея или подключение к поддерживаемым сообществом публичным релеям.

    Среди расширенных возможностей: поддержка Multipath QUIC для доставки пакетов одновременно по нескольким маршрутам, возможность работы из-за NAT, режим статической конфигурации для подключения к локальным устройствам без доступа к интернету, возможность сборки в промежуточный код WASM для выполнения внутри браузера, поддержка создания своих транспортов, например, для подключения через Bluetooth, WiFi Aware или LoRa. Код написан на Rust и распространяется под лицензиями Apache-2.0 и MIT. Доступны обвязки для Python, Node.js, Kotlin и Swift.

  • Автор серверной JavaScript-платформы Bun опубликовал статью с разбором проекта по переписыванию Bun с языка Zig на Rust, используя AI-модель Claude Fable. Отмечается, что Bun 1.3.14 станет последним выпуском на Zig и следующая версия Bun 1.4.0 уже будет на Rust. Судя по проведённым тестам, версия на Rust потребляет значительно меньше памяти и на 2-5% быстрее версии на Zig. Размер исполняемого файла в версии на Rust сократился на 20%.


  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: Опубликован crustc - компилятор rustc, переведённый на язык Си
  3. OpenNews: Возвращение в Ubuntu утилиты cp из Rust Coreutils привело к сбою при сборке livecd-rootfs
  4. OpenNews: Выпуск X-сервера yserver 1.0.0, написанного на Rust и пригодного для запуска MATE, Xfce и Cinnamon
  5. OpenNews: Выпуск ядра Asterinas 0.18, написанного на языке Rust и совместимого с Linux
  6. OpenNews: Выпуск Rust 1.96. Оценка пригодности Rust для создания прошивок к микроконтроллерам
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65883-rust
Ключевые слова: rust, zinnia, iroh
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 21:41, 10/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уже даже ИИ можно привлечь к тому чтобы написать нормальный язык. И даже он не в состоянии довести Rust до стабильного удобоваримого состояния.
     
     
  • 2.13, Аноним (13), 22:45, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Мантра безопасности разбилась о баги uutils :)
     
     
  • 3.14, Аноним (14), 22:52, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Мантра безопасности разбилась о баги uutils :)

    Ну, в фантазиях местных воителей супротив раста еще и не то бывает/было 🙂


     
     
  • 4.16, Анонон (?), 22:59, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле баги были безопасными?
     
     
  • 5.17, warlock66613 (ok), 23:05, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Именно так и было.
     
  • 5.18, Аноним (14), 23:12, 10/07/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.4, Аноним (4), 21:44, 10/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Минорщина немного раздражает, особенно, когда приходится по цепочке собрать 10 растов и все 10 обновлений -- минорщина. Они не могут накопить сразу за год изменений и выпустить их разом?
     
     
  • 2.5, q (ok), 21:45, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > приходится по цепочке собрать 10 растов

    Не приходится. Только ты так делаешь почему-то.

     
     
  • 3.6, Аноним (4), 21:49, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Твоя ошибка, если ты доверяешь бинарному. Не удивляйся, когда какой-нибудь файрфокс, собранный растом, собранным бинарным растом, будет очень странно себя вести.
     
     
  • 4.7, q (ok), 22:06, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У тебя проприетарно-закрытый биос? Или коребут поставил? А ЦПУ какой? С закрытым или открытым микрокодом? И вообще, весь ПК состоит из опенсорсных компонентов?
     
     
  • 5.15, Аноним (15), 22:56, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > У тебя проприетарно-закрытый биос? Или коребут поставил? А ЦПУ какой? С закрытым или открытым микрокодом? И вообще, весь ПК состоит из опенсорсных компонентов?

    Китайские?

     
  • 3.8, Аноним (8), 22:12, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет, я тоже так делаю
     
     
  • 4.9, q (ok), 22:16, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хорошо. Только вы двое так делаете почему-то. Хотя остальным так делать не приходится.
     

  • 1.10, анм (?), 22:17, 10/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    то есть растеры за свою недолгую карьеру уже осилили ядро и запуск на железе? пока реактосевцы чинят то, что ни разу не запускалось? удивительно
     
     
  • 2.12, ryoken (ok), 22:32, 10/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>реактосевцы чинят то, что ни разу не запускалось

    Только я вижу тут некое противоречие? :)

     

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



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

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