Opublikowano wydanie projektu uutils coreutils 0.8.0 (Rust Coreutils), rozwijającego analog pakietu GNU Coreutils, napisanego 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. Celem projektu jest stworzenie wieloplatformowej alternatywnej implementacji Coreutils, między innymi zdolnej do działania na platformach Windows, Redox i Fuchsia.
Rust Coreutils jest używany domyślnie w wydaniu Ubuntu 25.10 i stosowany w dystrybucjach AerynOS (Serpent OS) i Apertis (rozwijane przez firmę Collabora). W przeciwieństwie do GNU Coreutils, implementacja w Rust jest dystrybuowana na podstawie zezwolenia MIT, a nie licencji copyleft GPL. Dodatkowo ta sama drużyna programistów rozwija pisane w Rust odpowiedniki zestawów narzędzi util-linux, diffutils, findutils, procps i acl, a także programów sed i login.
W nowej wersji Rust Coreutils:
- Poziom zgodności z wzorcowym zestawem testów GNU Coreutils wyniósł 94,74% (wcześniej 94,59%). Pomyślnie wykonano 630 testów, co jest o 1 więcej w porównaniu do poprzedniej wersji (629). 21 testów zakończyło się niepowodzeniem (wcześniej 23), a 14 testów zostało pominiętych (wcześniej 13).
- W narzędziach cat, df, wc, tty, tsort, tail, touch, date, mkdir i uucore zamiast pakietu crate nix wykorzystano rustix. Zredukowano ilość kodu unsafe w narzędziach hostname, logname, who i nice.
- Przeprowadzono optymalizacje wydajności narzędzi dd (+45%), ls, sort, wc, cat, tee, numfmt (+3%) i pr. Zredukowano rozmiar plików wykonywalnych true, false i echo.
- W ponad 70 narzędziach, w tym ls, head, cat, cp, mv, sort i tail, dodano wsparcie dla kompilacji w formacie WebAssembly oraz użycia interfejsu WASI (WebAssembly System Interface). Przygotowano demonstracyjny serwis online z interaktywnym terminalem, w którym można uruchamiać narzędzia uutils.
- Rozszerzono możliwości, wyeliminowano problemy i dodano brakujące opcje do narzędzi cat, chown, cksum, cp, cut, date, dd, df, env, expand, expr, factor, head, install, ln, ls, mkdir, nice, numfmt, od, pr, sort, split, stdbuf, stty, sync, tee, timeout, touch, tr, true, tsort, tty, wc, yes.
Źródło: opennet.ru
