Пуснат е 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). За разлика от GNUC Coreutils, реализацията на Rust е разпространена под позволителната MIT лицензия, вместо копилефт лицензия GPL. Допълнително, същият екип разработва и аналогични утилити на Rust за 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 вместо небезопасни извиквания на 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