Выпуск uutils 0.9, варианта GNU Coreutils на языке Rust

Опубликован выпуск проекта uutils coreutils 0.9.0 (Rust Coreutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia.

Rust Coreutils
задействован по умолчанию в выпуске Ubuntu 25.10 и частично в Ubuntu 26.04. Rust Coreutils также применяется в дистрибутивах AerynOS (Serpent OS) и Apertis (развивается компанией Collabora). В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно той же командой разработчиков развиваются написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils, procps и acl, а также программ sed и login.

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

  • Уровень совместимости с эталонным набором тестов GNU Coreutils составил 90.58% (было 94.74%). Успешно выполнено 625 тестов, что на 5 меньше, чем в прошлой версии (630). 56 тестов завершилось неудачей (было 21), один тест привёл к ошибке, а 8 тестов было пропущено (было 14). Снижение уровня совместимости объясняется обновлением набора тестов до состояния выпуска GNU Coreutils 9.11, в котором добавлено 25 новых тестов.
  • Устранены 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.
  • Источник: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster