Rust Coreutils 0.6 erreicht 96 Prozent GNU-Kompatibilität
Die Rust-Neuimplementierung klassischer Unix-Tools erreicht in Version 0.6 eine GNU-Kompatibilität von 96 Prozent – und reduziert Unsafe-Code.
(Bild: heise medien)
Die Entwickler der Rust Coreutils haben Version 0.6 veröffentlicht. Die Rust-Neuimplementierung klassischer Unix-Werkzeuge erreicht damit 96,28 Prozent Kompatibilität zur GNU-Test-Suite und besteht 622 von 646 Tests. Gegenüber der im Dezember erschienenen Version 0.5 mit 87,75 Prozent Kompatibilität bedeutet das einen Sprung von über acht Prozentpunkten.
Besonders bemerkenswert: Die Zahl der fehlgeschlagenen Tests sank von 55 auf nur noch 16, während die Anzahl übersprungener Tests von 23 auf 7 zurückging. Die Entwickler testeten gegen die GNU Coreutils 9.9 als Referenz.
Weniger unsicherer Code
Ein Schwerpunkt der neuen Version liegt auf der Reduzierung von unsafe Code. Die Entwickler entfernten unsichere Passagen in den Utilities date, sort und locale.rs. Statt direkter libc-Aufrufe nutzt die Software nun das nix-Crate, das sichere Rust-Wrapper um POSIX-Systemaufrufe bereitstellt.
Für die Tools rm, du, chmod und chgrp verwenden die Entwickler ab Version 0.6 die System-Calls openat und unlinkat über das nix-Crate für sichere Directory-Traversal. Diese Änderungen eliminieren ganze Klassen von Sicherheitslücken wie Buffer Overflows oder Use-After-Free-Fehler, die bei direkten libc-Aufrufen auftreten können.
Performance-Optimierungen
Version 0.6 bringt Performance-Verbesserungen für mehrere Tools. Die Base-Encoding-Utilities base32, base64 und basenc arbeiten durch reduzierte memset-Operationen schneller. Das Tool shuf erhielt eine optimierte numerische Ausgabe und eine neue Option --random-seed. Bei date beschleunigt ein BufWriter das Batch-Processing, während uniq die Speichernutzung für Case-Insensitive-Vergleiche optimiert.
Das Tool tsort vermeidet nun das vollständige Einlesen der Eingabe in den Speicher, was bei großen Datenmengen deutliche Vorteile bringt. Auch df profitiert von einem verbesserten Dateisystem-Handling.
Bessere Internationalisierung
Die neue Version erweitert die Lokalisierungsunterstützung erheblich. Das Tool date nutzt jetzt ICU-Support für locale-aware Datums- und Monatsbezeichnungen sowie Stundenformatierung und Kalenderunterstützung. In sort funktioniert die numerische Sortierung ab sofort mit Tausendertrennzeichen, während join locale-aware Collation unterstützt. Die Entwickler integrieren zudem Weblate für Community-Übersetzungen.
Videos by heise
Erweiterte PlattformunterstĂĽtzung
Rust Coreutils 0.6 unterstĂĽtzt offiziell RISC-V 64-bit mit musl-Target in der CI-Pipeline. Die Cygwin-UnterstĂĽtzung fĂĽr Windows-Nutzer wurde ebenfalls ausgebaut. Neu hinzugekommen ist Support fĂĽr das SMACK Security Module in den Tools ls, id, mkdir, mkfifo und mknod.
Das Tool tail erhielt ein --debug-Flag, verbesserte Symlink-Verfolgung mit der Option -F und FIFO-Timeout-Handling fĂĽr --pid. Bei timeout implementierten die Entwickler umfassendes Signal-Handling und eine --verbose-Option.
Das Sortiertool sort unterstĂĽtzt nun Legacy-Syntax mit +POS/-POS, bietet Debug-Key-Annotationen und bessere locale-aware Sortierung. Bei pr korrigierten die Entwickler Fehler bei Headers, Form Feeds und Pagination. Die Tools chmod und rm behandeln rekursive Operationen und Symlinks besser als zuvor.
Ubuntu und Fedora setzen auf Rust Coreutils
Die Entwicklung der Rust Coreutils gewinnt in der Linux-Welt zunehmend an Bedeutung. Ubuntu 25.10 verwendet bereits Rust Coreutils 0.2.2 als Standard im Rahmen der Oxidising-Ubuntu-Initiative von Canonical. Fedora plant, Version 0.5 in Fedora 44 als Option für Early Adopters anzubieten – allerdings nicht als Standardvariante wie bei Ubuntu.
Auf der FOSDEM 2026 am 1. Februar berichtete Sylvestre Ledru vom uutils-Kernteam über praktische Erfahrungen mit Rust Coreutils in Ubuntu. Der Vortrag „Rust Coreutils in Ubuntu: Yes, we rewrote /bin/true in Rust – Here's what really happened“ gab Einblicke in Packaging-Komplexität, undokumentierte Verhaltensweisen und den Umgang mit kritischen System-Tools.
Die Entwicklergemeinschaft wächst stetig: An Version 0.6 wirkten 41 neue Contributors mit. Wer die Rust Coreutils testen möchte, findet sie im GitHub-Repository des Projekts.
(fo)