Опубликован выпуск проекта uutils coreutils 0.7.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 и применяется в дистрибутивах AerynOS (Serpent OS) и Apertis (развивается компанией Collabora). В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно той же командой разработчиков развиваются написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils, procps и acl, а также программ sed и login.
В новой версии Rust Coreutils:
- Уровень совместимости с эталонным тестовым набором GNU Coreutils составил 94.59% (было 96.28%). Успешно выполнено 629 тестов, что на 7 больше, чем в прошлой версии (622). 23 (было 16) теста завершилось неудачей, а 13 (было 7) тестов было пропущено. Снижение уровня совместимость объясняется обновлением тестового набора до состояния выпуска GNU Coreutils 9.10, в котором добавлено 19 новых тестов. Если считать общее число тестов, то в Rust Coreutils обеспечено прохождение на 7 тестов больше, чем в прошлом выпуске.
- Наиболее значительное повышение совместимости отмечено для утилит
date, fmt, kill, ptx, numfmt и cksum. Менее значимые улучшения совместимости отмечены в утилитах cut, tac, tail, tr, uniq, od, chroot, stat, mktemp, pr, readlink, ln, kill, nproc, rm, env, sync, fmt, factor и wc. - Обеспечено сопровождение Rust-библиотеки num-prime, применяемой для тестирования в утилите factor.
- Задействованы более быстрые реализации хэшей rustc-hash в ls, du, tsort, shuf, mv, и foldhash в sort.
- Оптимизирована работа с ASCII-символами в утилитах unexpand и expand, позволившая на 14% ускорить работу при буферизированном чтении.
- Оптимизированы операции выделения памяти в утилитах shuf, split, sort и du, что позволило ускорить du на 3–6%, а shuf на 4%.
- Ускорено преобразование чисел в строки в утилите nl.
- Сокращён размер исполняемых файлов и ускорен запуск утилит true и false.
- В более 20 утилитах, включая echo, date, sort, expr, hostname, id, comm, pr и dircolors, решены проблемы с аварийным завершением при невозможности записи в stderr (перенаправлении в /dev/full).
- В umask, mkdirat, mknod и других утилитах заменены небезопасные вызовы libc на защищённые обвязки из crate-пакета nix.
- Обеспечена корректная работа опции «—preserve-root» в утилите «rm» при указании символических ссылок.
- Улучшена поддержка платформ NetBSD, Windows и NixOS. Улучшена сборка для архитектуры PowerPC.
- Расширены возможности, устранены проблемы и добавлены недостающие опции для утилит cat, cksum, chroot, comm, cp, csplit, cut, date, dd, df, dircolors, du, echo, env, expand, expr, factor, false, fmt, fold,
hostname, id, install, kill, ln, ls, mktemp, mknod, mv, nl, nproc, numfmt, od, paste, pr, printfm, ptx, readlink, rm, shuf, sort, split, stat, stdbuf, stty, sync, tac, tail, test, tr, true, tsort, unexpand, uniq, uptime, vdir, wc, whoami.
Источник: http://www.opennet.ru/opennews/art.shtml?num=64945
