Die Veröffentlichung des Projects uutils coreutils 0.7.0 (Rust Coreutils), einer Alternative zum GNU Coreutils-Paket, das in Rust geschrieben ist, wurde bekannt gegeben. Die coreutils umfassen über einhundert Utilities, darunter sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln und ls. Ziel des Projekts ist die Schaffung einer plattformübergreifenden alternativen Implementierung von Coreutils, die unter anderem auf Windows-, Redox- und Fuchsia-Plattformen arbeiten kann.
Rust Coreutils ist standardmäßig in der Ubuntu-Version 25.10 enthalten und wird in den Distributionen AerynOS (Serpent OS) und Apertis (entwickelt von Collabora) verwendet. Im Gegensatz zu GNU Coreutils wird die Rust-Implementierung unter der permissiven MIT-Lizenz statt unter der Copyleft-Lizenz GPL vertrieben. Zusätzlich entwickelt dasselbe Entwicklerteam Rust-Analogien zu den Utility-Sets util-linux, diffutils, findutils, procps und acl sowie zu den Programmen sed und login.
In der neuen Version von Rust Coreutils:
- Der Kompatibilitätsgrad mit dem Referenz-Testset von GNU Coreutils betrug 94,59 % (vorher 96,28 %). 629 Tests wurden erfolgreich durchgeführt, das sind 7 mehr als in der vorherigen Version (622). 23 (vorher 16) Tests sind gescheitert und 13 (vorher 7) Tests wurden übersprungen. Der Rückgang der Kompatibilität ist auf das Update des Testsets auf den Release-Zustand von GNU Coreutils 9.10 zurückzuführen, das 19 neue Tests hinzugefügt hat. Bei der Gesamtanzahl der Tests bietet Rust Coreutils 7 Tests mehr als die vorherige Version.
- Der bedeutendste Anstieg der Kompatibilität wurde bei den Utilities date, fmt, kill, ptx, numfmt und cksum festgestellt. Weniger signifikante Verbesserungen wurden bei den Utilities cut, tac, tail, tr, uniq, od, chroot, stat, mktemp, pr, readlink, ln, kill, nproc, rm, env, sync, fmt, factor und wc verzeichnet.
- Die Rust-Bibliothek num-prime, die für Tests in der Utility factor verwendet wird, wird nun unterstützt.
- Schnellere Implementierungen von Hashes, rustc-hash, wurden in ls, du, tsort, shuf, mv und foldhash in sort verwendet.
- Die Verarbeitung von ASCII-Zeichen in den Utilities unexpand und expand wurde optimiert, was eine 14%ige Beschleunigung beim Pufferlesen ermöglichte.
- Die Speicheroperationen in den Utilities shuf, split, sort und du wurden optimiert, was eine Beschleunigung von du um 3–6% und von shuf um 4% zur Folge hatte.
- Die Umwandlung von Zahlen in Strings in der Utility nl wurde beschleunigt.
- Die Größe der ausführbaren Dateien wurde reduziert und der Start der Utilities true und false beschleunigt.
- In über 20 Utilities, darunter echo, date, sort, expr, hostname, id, comm, pr und dircolors, wurden Probleme mit dem Absturz beim Schreiben in stderr (Umleitung nach /dev/full) behoben.
- In umask, mkdirat, mknod und anderen Utilities wurden unsichere libc-Aufrufe durch geschützte Wrapper aus dem crate-Paket nix ersetzt.
- Die Option „—preserve-root“ in der Utility „rm“ funktioniert korrekt, wenn symbolische Links angegeben werden.
- Die Unterstützung der Plattformen NetBSD, Windows und NixOS wurde verbessert. Der Build für die PowerPC-Architektur wurde ebenfalls optimiert.
- Die Funktionen wurden erweitert, Probleme behoben und fehlende Optionen für die Dienstprogramme cat, cksum, chroot, comm, cp, csplit, cut, date, dd, df, dircolors, du, echo, env, expand, expr, factor, false, fmt, fold, hostname, id, install, kill, ln, ls, mktemp, mknod, mv, nl, nproc, numfmt, od, paste, pr, printfm, ptx, readlink, rm, shuf, sort, split, stat, stdbuf, stty, sync, tac, tail, test, tr, true, tsort, unexpand, uniq, uptime, vdir, wc, whoami.
Quelle: opennet.ru
