Излезе 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