Издание на uutils 0.3, вариант GNU Coreutils на езика Rust

Публикувано издание на проект uutils coreutils 0.3.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. Допълнително, същият екип разработва аналози на наборите от утилити util-linux, diffutils, findutils и procps, както и програмите sed и login.

В новата версия на Rust Coreutils:

  • Значително е повишена производителността на някои утилити, например, в сравнение с GNU Coreutils, утилитата sort сега е 3.72 пъти по-бърза при обикновена сортировка и 1.46 пъти по-бърза при сортиране на числа, base64 е 1.2 пъти по-бърза, expand е 1.8 пъти по-бърза, unexpand — 1.5 пъти по-бърза, nl — 1.57 пъти по-бърза, fold — 1.19 пъти по-бърза, „uniq -c“ е 1.13 пъти по-бърза.
  • На базата на инструмента CodSpeed е създадена инфраструктура за следене на производителността. В системата за непрекъсната интеграция е осигурено откриването на регресии в производителността. Добавени са тестове за производителност за 15 утилити, между които sort, ls, uniq, du и base64.
  • За утилитите rm, du, chmod и chgrp е реализирана безопасна работа с относителни пътища на директории, основана на използването на функциите openat и unlinkat.
  • Повишена е безопасността чрез използването на crate-пакета nix вместо unsafe-викания на libc.
  • Подобреното обработване на грешки е приближено до обработката на грешки в GNU Coreutils в много утилити.
  • Подобрената съвместимост с Coreutils при работа с файлови пътища, включващи и не включващи UTF8 символи.
  • Подобрената съвместимост с референтния тестов набор на GNU Coreutils, при преминаването на който успешно са изпълнени 532 теста (в миналата версия 538), 68 (52) теста са завършили с неуспех, а 33 (27) теста са били пропуснати. Заявеното ниво на съвместимост е 83.91% (беше 87.06%). Намалението на нивото на съвместимост се обяснява с добавянето на 16 нови теста в тестовия набор.
  • В утилитата date е реализирана опция «—reference=file» за показване на времето на модификация на файла. Поради отсъствието на тази опция в Ubuntu, скриптът за автоматична проверка на наличието на актуализации спря да работи. В date също е консолидирана логиката за парсинг на времето, подобрена е съвместимостта в GNU date с опцията «-d» и е добавен флаг «—resolution» за извеждане на данни за точността на отчитането на времето.
  • Реализирани са опции: «basenc —base58», «id -a», «ls -f», «pinky —lookup», «realpath -E», «rm —progress».
  • Разширени са възможностите, отстранени са проблеми и добавени недостигнати опции за утилитите base64, basenc, chgrp, chmod, cksum, cp, csplit, date, df, dirname, du, expand, expr, fold, hashsum, hostname, id, install, ln, ls, mv, nl, nohup, numfmt, od, pinky, ptx, realpath, rm, seq, sort, stat, stdbuf, stty, tail, timeout, touch, tsort, unexpand, uniq, uname, wc, who, uucore.

Източник: opennet.ru

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