Выпуск Rust Coreutils 0.10.0

В начале августа 2026 года состоялся релиз открытого проекта Rust Coreutils 0.10.0 (uutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более сотни утилит, включая wc, ls, tail, se, sort, cat, chmod, chown, chroot, cp, date, dd, du, install, echo, hostname, id, ln, ls и многие другие.

Целью проекта Rust Coreutils является создание кроссплатформенной альтернативной реализации Coreutils, способной работать в том числе на платформах Windows, Redox и Fuchsia.

Решение Rust Coreutils используется по умолчанию в дистрибутиве Ubuntu, начиная с выпуска 25.10. Также Rust Coreutils применяется в дистрибутивах AerynOS (Serpent OS) и Apertis (развивается компанией Collabora).

В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно команда разработчиков Rust Coreutils развивает написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils, procps и acl, а также программ sed и login.

В версии Rust Coreutils 0.10.0 уровень совместимости с эталонным набором тестов GNU Coreutils составил 93.48% (было 90.58%). Успешно выполнено 645 тестов, что на 20 больше, чем в прошлой версии (625). 29 тестов завершилось неудачей (было 56), один тест привёл к ошибке, а 15 тестов было пропущено (было 8).

Основные доработки и улучшения в Rust Coreutils 0.10.0 включают в себя «значительное» повышение производительности основных утилит, расширенную поддержку WebAssembly и использования интерфейса WebAssembly System Interface (WASI), усиление защиты от паник в крайних случаях и онлайн-площадку для демонстрации тестирования Rust Coreutils в веб-браузере с интерактивным терминалом, в котором можно запускать утилиты uutils. В новой версии Rust Coreutils также удалили больше небезопасного кода из различных основных утилит.

По информации OpenNET, изменения и дополнения в версии Rust Coreutils 0.10.0:

  • устранены отдельные расхождения с GNU Coreutils в поведении утилит pr, nproc, date, numfmt, ls, du, install, od, truncate, fold, head/tail, sum и stat;

  • продолжена работа по усилению безопасности для предотвращения появления уязвимостей, вызванных состоянием гонки, позволяющим изменить данные в момент после проверки корректности информации, но до выполнения операции с ними, например, подменить файл на символическую ссылку в момент между завершением проверки и началом выполнения операции. В контексте использования утилит cp, chmod и mv в системных скриптах, запускаемых с правами root, подобные уязвимости позволяют скопировать или перезаписать произвольные файлы. Усилена защита утилит touch, mkfifo, mkdir, mknod, mv, chroot, head, split и chcon;

  • проведена работа по устранению аварийных завершений через механизм panic в утилитах shuf, printf, numfmt, fmt, pr, chroot, dircolors, install, ln, touch, stat, split, expand, more, kill, cp, du, rm, runcon, sort, chown/chgrp, dirname, expr, cksum, dd, truncate, hashsum;

  • выполнена оптимизация производительности утилит cksum, sum, split, expand/unexpand, base*, tee, cat, cp, mv, expr, uniq, du;

  • добавлена поддержка сборочной цели wasm32-wasip2;

  • в утилите mv реализована опция «‑exchange» для замены местами двух файлов или каталогов;

  • в утилиту install добавлена опция «‑reflink» и обеспечена возможность совместного использования опций «‑C» и «‑preserve‑timestamps»;

  • в утилиту rm добавлена опция «‑one‑file‑system»;

  • в утилите cut предоставлена возможность работы с многобайтовыми кодировками при использовании не UTF-8 локалей;

  • для быстрого вычисления контрольных сумм задействован бэкенд OpenSSL.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев