Wydano wydanie narzędzi uutils coreutils 0.0.12, w ramach którego rozwijany jest odpowiednik pakietu GNU Coreutils, przepisany w języku Rust. W skład coreutils wchodzi ponad sto narzędzi, w tym sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln i ls. Równocześnie wydano pakiet uutils findutils 0.3.0 z realizacją w języku Rust narzędzi z zestawu GNU Findutils (find, locate, updatedb i xargs).
Jako przyczynę stworzenia projektu i wykorzystania języka Rust wymienia się chęć stworzenia wieloplatformowej alternatywnej realizacji Coreutils i Findutils, która mogłaby działać także na platformach Windows, Redox i Fuchsia. Kolejną ważną różnicą uutils jest dystrybucja na licencji MIT, zamiast licencji copyleft GPL.
Obecnie całkowicie doprowadzono do parytetu z GNU Coreutils realizację 88 narzędzi. Wybrane niedoróbki odnotowano w 18 narzędziach, w tym cp, dd, date, df, install, ls, more, sort, split, tail i test. Niezrealizowaną pozostaje tylko narzędzie stty. Podczas przechodzenia zestawu testów od projektu GNU Coreutils z sukcesem wykonano 214 testów, ale 313 testów odpowiednika w Rust wciąż nie przechodzi. Intensywność prac nad projektem znacznie wzrosła — miesięcznie dodawane jest 400-470 poprawek od 20-50 programistów zamiast 30-60 od 3-8 programistów rok temu.

Z ostatnich osiągnięć odnotowano optymalizację wydajności — w obecnym stanie wiele narzędzi, takich jak head i cut, znacznie przewyższa pod względem wydajności warianty z GNU Coreutils. Zakres testów poszerzono z 55% do 75% całego kodu (docelowym celem jest 80%). Przeprowadzono refaktoryzację kodu w celu uproszczenia jego utrzymania, na przykład zunifikowano obsługę błędów w różnych programach, a w chgrp i chown połączono kod odpowiedzialny za zarządzanie prawami dostępu. Dodano liczne zmiany mające na celu poprawę kompatybilności z GNU Coreutils.
W planach na przyszłość wskazano wdrożenie narzędzia stty, kontynuację prac nad poprawą kompatybilności z GNU Coreutils, dodawanie optymalizacji w celu zmniejszenia rozmiaru plików wykonywalnych, a także dalsze eksperymenty z używaniem w Debianie i Ubuntu narzędzi uutils zamiast GNU Coreutils i GNU Findutils (jeden z głównych deweloperów uutils wcześniej zajmował się projektem mającym na celu zapewnienie budowy Debiana GNU/Linux przy użyciu kompilatora Clang). Dodatkowo zauważono przygotowanie pakietu uutils-coreutils dla macOS, eksperymenty z zastąpieniem GNU Coreutils na uutils coreutils w NixOS, zamiar używania uutils coreutils domyślnie w dystrybucji Apertis oraz adaptację zestawu uutils dla Redox OS.
Źródło: opennet.ru
