Представен е релиз на инструмента uutils coreutils 0.0.12, в който се развива аналог на пакета GNU Coreutils, пренаписан на Rust. Включени са над сто утилити, сред които sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Също така е издаден пакет uutils findutils 0.3.0 с реализация на Rust на утилити от набора GNU Findutils (find, locate, updatedb и xargs).
Причината за създаването на проекта и използването на Rust е желанието да се създаде кросплатформена алтернативна реализация на Coreutils и Findutils, способна да работи и на платформи Windows, Redox и Fuchsia. Друго важно отличие на uutils е, че се разпространява под разрешителната лицензия MIT, вместо копилефт лиценцията GPL.
Към момента 88 утилити са напълно доведени до паритет с GNU Coreutils. Отделни недоразумения са отбелязани в 18 утилити, включително cp, dd, date, df, install, ls, more, sort, split, tail и test. Само утилитата stty остава неосъществена. При преминаване на тестовия набор от проекта GNU Coreutils успешно преминават 214 теста, докато 313 теста на аналога на Rust все още не са успешни. Въпреки това, интензивността на разработката на проекта е значително увеличена — на месец се добавят 400-470 патча от 20-50 разработчици, вместо 30-60 от 3-8 разработчици преди година.

От последните постижения се отбелязва оптимизация на производителността — в текущото състояние много утилити, като head и cut, значително превъзхождат по производителност вариантите от GNU Coreutils. Покритие на тестовия набор е разширено от 55% до 75% от целия код (целта е 80%). Извършен е рефакторинг на кода за улесняване на поддръжката, например, унифицирана е обработката на грешки в различни програми, а в chgrp и chown е обединен кодът за работа с права за достъп. Добавени са многобройни изменения за подобряване на съвместимостта с GNU Coreutils.
От плановете за бъдещето се подчертава реализирането на утилитата stty, продължаващата работа по подобряване на съвместимостта с GNU Coreutils, добавянето на оптимизации за намаляване размера на изпълнимите файлове, както и продължаващите експерименти с използването на утилитите uutils вместо GNU Coreutils и GNU Findutils в Debian и Ubuntu (един от основните разработчици на uutils преди това е работил по проекта за осигуряване на компилацията на Debian GNU/Linux с компилатора Clang). Допълнително се отбелязва подготвянето на пакета uutils-coreutils за macOS, експерименти с подмяната на GNU Coreutils с uutils coreutils в NixOS, намерението да се използва uutils coreutils по подразбиране в дистрибуцията Apertis и адаптацията на набора uutils за Redox OS.
Източник: opennet.ru
