Die Veröffentlichung der Version 0.7.0 des Projekts uutils coreutils (Rust Coreutils) wurde bekannt gegeben. Dieses Projekt entwickelt eine Alternative zu dem GNU Coreutils-Paket, die in der Programmiersprache Rust geschrieben ist. Zu den coreutils gehören über einhundert Dienstprogramme, darunter sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln und ls. Ziel des Projekts ist es, eine plattformübergreifende alternative Implementierung von Coreutils zu schaffen, die unter anderem auf Windows, Redox und Fuchsia läuft.
Rust Coreutils wird standardmäßig in der Version Ubuntu 25.10 eingesetzt und kommt in den Distributionen AerynOS (Serpent OS) und Apertis (entwickelt von Collabora) zum Einsatz. Im Gegensatz zu GNU Coreutils wird die Rust-Implementierung unter der permissiven MIT-Lizenz veröffentlicht, anstelle der Copyleft-Lizenz GPL. Darüber hinaus entwickelt dasselbe Entwicklerteam auch Rust-Alternativen zu den Toolkits 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 lag bei 94,59 % (vorher 96,28 %). Es wurden erfolgreich 629 Tests durchgeführt, was 7 mehr ist als in der vorherigen Version (622). 23 (vorher 16) Tests sind fehlgeschlagen, und 13 (vorher 7) Tests wurden übersprungen. Der Rückgang der Kompatibilität erklärt sich durch das Update des Testsets auf den Release-Zustand von GNU Coreutils 9.10, der 19 neue Tests hinzugefügt hat. Wenn man die Gesamtzahl der Tests betrachtet, hat Rust Coreutils 7 Tests mehr bestanden als in der vorherigen Version.
- Die signifikanteste Verbesserung der Kompatibilität wurde bei den Dienstprogrammen date, fmt, kill, ptx, numfmt und cksum festgestellt. Geringfügige Verbesserungen der Kompatibilität wurden bei den Dienstprogrammen cut, tac, tail, tr, uniq, od, chroot, stat, mktemp, pr, readlink, ln, kill, nproc, rm, env, sync, fmt, factor und wc vermerkt.
- Die Rust-Bibliothek num-prime wird unterstützt, die für Tests im Utility factor verwendet wird.
- Schnellere Implementierungen von Hashes rustc-hash wurden in ls, du, tsort, shuf, mv und foldhash in sort integriert.
- Die Verarbeitung von ASCII-Zeichen in den Tools unexpand und expand wurde optimiert, was eine 14%ige Beschleunigung beim gepufferten Lesen ermöglicht hat.
- Die Speicherzuweisungsoperationen in den Tools shuf, split, sort und du wurden optimiert, was du um 3–6% und shuf um 4% beschleunigt hat.
- Die Umwandlung von Zahlen in Strings im Tool nl wurde beschleunigt.
- Die Größe der ausführbaren Dateien wurde reduziert und der Start der Programme true und false beschleunigt.
- In über 20 Utilities, einschließlich echo, date, sort, expr, hostname, id, comm, pr und dircolors, wurden Probleme mit dem Absturz beim Schreiben in stderr (Weiterleitung nach /dev/full) behoben.
- Sichere Schnittstellen aus dem crate-Paket nix haben unsichere libc-Aufrufe in umask, mkdirat, mknod und anderen Utilities ersetzt.
- Die Funktionalität der Option „—preserve-root“ im Tool „rm“ wurde bei Angabe von symbolischen Links sichergestellt.
- Die Unterstützung für die Plattformen NetBSD, Windows und NixOS wurde verbessert. Der Build für die PowerPC-Architektur wurde ebenfalls optimiert.
- Die Möglichkeiten wurden erweitert, Probleme behoben und fehlende Optionen für die Befehle 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 wurden hinzugefügt.
Quelle: opennet.ru
