Версия Rust Coreutils 0.9.0

3 мин
Версия Rust Coreutils 0.9.0

В конце мая 2026 года состоялся выпуск открытого проекта Rust Coreutils 0.9.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. Ранее команда проекта Ubuntu объявила об обнаруженной ошибке в версии команды date (на основе uutils на языке Rust), поставляемой с 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.9.0 уровень совместимости с эталонным набором тестов GNU Coreutils составил 90.58% (было 94.74 процентов). Успешно выполнено 625 тестов, что на 5 меньше, чем в прошлой версии (630). 56 тестов завершилось неудачей (было 21), один проверка привёл к ошибке, а 8 тестов было пропущено (было 14). Снижение уровня совместимости объясняется обновлением набора тестов до состояния выпуска GNU Coreutils 9.11, в котором добавлено 25 новых тестов.

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

В новой версии Rust Coreutils:

  • устранены 44 уязвимости, выявленных в ходе аудита, проведённого компанией Zellic. Большинство уязвимостей вызвано расхождением поведения с GNU coreutils или состоянием гонки, позволяющим изменить информация в момент после проверки корректности информации, но до выполнения операции с ними, в частности, подменить файл на символическую ссылку в момент между завершением проверки и началом выполнения операции. В контексте использования утилит cp, chmod и mv в системных скриптах, запускаемых с правами root, подобные уязвимости позволяют скопировать или перезаписать произвольные файлы. Для защиты от уязвимостей, вызванных состоянием гонки в проекте задействован модуль uucore::safe_copy;

  • продолжен перевод утилит на crate‑пакет rustix вместо crate‑пакета nix. На rustix переведены утилиты id, tr, timeout, sort, wc, tail, cp, who и factor. Проведена чистка кода от unsafe‑операций в различных утилитах;

  • в утилитах cat, wc, head, tail, yes, cp, tee и unexpand задействованы обработчики ввода/вывода на базе системных вызовов splice(), tee() и pipe(), позволившие ускорить работу за счёт исключения лишнего копирования данных между буферами;

  • улучшена совместимость с GNU Coreutils утилит numfmt, date, tr, cksum, factor, head, stat и sort;

  • в утилиты ln, dd, mktemp и tty добавлена сопровождение сборки в формате WebAssembly и использования интерфейса WASI (WebAssembly System Interface);

  • расширены возможности, устранены проблемы и добавлены недостающие опции для утилит cat, chroot, cksum, cp, date, dd, df, dirname, du, echo, env, expr, factor, fmt, head, id, install, join, ln, logname, ls, md5sum, mkdir, mknod, mktemp, more, mv, nl, nohup, nproc, numfmt, od, paste, pinky, pr, realpath, rm, rmdir, shred, sort, split, stat, stdbuf, stty, sum, sync, tail, tee, timeout, touch, tr, tty, unexpand, uniq, uptime, wc, who, yes.

Читают сейчас

Глава Microsoft объяснил, почему ИИ не обесценит людей

5 часов назад

Глава Microsoft объяснил, почему ИИ не обесценит людей

Гендиректор Microsoft Сатья Наделла опубликовал в X программную статью о будущем компаний в экономике, которой управляет ИИ. Его основной вывод звучит так: чем мощнее становится искусственный интеллек

Отчет KPMG про агентный ИИ создал текст ИИ. Он похвалил сам себя и наврал почти во всех ссылках

7 часов назад

Отчет KPMG про агентный ИИ создал текст ИИ. Он похвалил сам себя и наврал почти во всех ссылках

Аудиторская организация KPMG, одна из "крупный четверки", отозвала свой отчет о пользе агентного ИИ — после того как стало известно, что сам документ оказался наглядной демонстрацией главной проблемы

Google отключил оператор inurl

8 часов назад

Google отключил оператор inurl

Ранее Google ограничил количество результатов поиска по оператору site, а теперь полностью отключил и inurl — поисковый оператор, который позволял находить документы содержащие нужную последовательнос

Вышло апдейт мультиплатформенного проекта RevPDF 4.5 — альтернатива Adobe Acrobat

9 часов назад

Вышло апдейт мультиплатформенного проекта RevPDF 4.5 — альтернатива Adobe Acrobat

13 июня 2026 года состоялся версия мультиплатформенного проекта RevPDF 4.5. Это маленький, бесплатный, работающий в автономном режиме редактор PDF-файлов с возможностью редактирования текста, скрытия

Microsoft выпустила версию PowerToys 0.100.0

11 часов назад

Microsoft выпустила версию PowerToys 0.100.0

Организация Microsoft выпустила PowerToys версии 0.100.0. Выпуск содержит исправления и улучшения для нескольких модулей, а наиболее важные изменения касаются повышения производительности, уменьшения