Heute ist der 9.03.2026 und wir blicken auf die neueste Entwicklung im Bereich der Kommandozeilen-Tools: die Veröffentlichung von Rust Coreutils Version 0.7. Diese Version bringt einen klaren Fokus auf Performance-Optimierungen, die zahlreiche Utilities betreffen. Zu den Verbesserungen zählen schnellere Hash Maps, neue ASCII-Schnellpfade sowie eine Reduzierung der malloc-Aufrufe, was die Speicher-Fragmentierung verringert und die CPU-Aktivitätszeiten optimiert. Die Integration von Build-Fixes für NetBSD und PowerPC zeigt zudem die plattformübergreifende Ambition des Projekts. Ein weiterer wichtiger Punkt ist die Reduzierung von unsicherem Code, da unsicherer libc-Code durch sichere Rust-Abstraktionen ersetzt wurde.

Besonders bemerkenswert ist, dass Version 0.7 Panics beim Schreiben nach /dev/full in über 20 Utilities, darunter so gängige wie echo, date und sort, beseitigt. Dies wird die Arbeit von Systemadministratoren und Endnutzern bei Batch-Operationen und großen Datenmengen erheblich erleichtern. Die Geschwindigkeitsgewinne sind beachtlich: unexpand verzeichnet beispielsweise eine Verbesserung von 14%, während du zwischen 3 und 6% schneller arbeitet. Auch der shuf-Befehl profitiert von einer rund 4%igen Beschleunigung. Trotz eines Rückgangs der Kompatibilität zur GNU Test Suite von 96,3% (Version 0.6) auf 94,6% (Version 0.7) ist die absolute Anzahl bestandener Tests gestiegen. Dies liegt an der Integration von 19 neuen, anspruchsvolleren Tests aus GNU Coreutils 9.10.

Ein neuer Ansatz mit uutils

Das Rust-Coreutils-Projekt, auch bekannt als uutils, ist eine plattformübergreifende Neimplementierung der GNU coreutils in Rust. Alle Programme sind implementiert, jedoch können einige Optionen fehlen oder abweichendes Verhalten aufweisen. Ziel ist es, ein Drop-in-Ersatz für die GNU-Utilities zu sein, wobei Unterschiede zu GNU als Fehler behandelt werden. Um möglichst viele Plattformen abzudecken, einschließlich Linux, macOS und Windows, wird die Übertragbarkeit von Skripten sichergestellt. Die Dokumentation für Benutzer und Entwickler ist umfassend und kann lokal generiert werden, was den Einstieg erleichtert.

Für Entwickler, die selbst Hand anlegen möchten, sind die Möglichkeiten zur Erstellung der uutils-Binärdateien vielfältig: entweder über Cargo oder GNU Make. Um das Repository zu klonen, genügt der Befehl git clone https://github.com/uutils/coreutils. Die Installation kann schnell erfolgen, beispielsweise mit cargo install --path . --locked, allerdings ohne Dateien für Shell-Vervollständigung oder Manpages. Anders sieht es bei der Installation mit Make aus, die auch diese Funktionen unterstützt. Damit können Shell-Vervollständigungen für bash, fish und zsh installiert werden, was die Nutzung erheblich vereinfacht.

Die Zukunft von Rust in Ubuntu

Ein spannender Aspekt, der die Relevanz von Rust weiter unterstreicht, ist die Integration von Rust in Ubuntu. In der kommenden Version 25.10 wird Ubuntu die GNU Coreutils durch die Rust-basierten uutils ersetzen. Dies macht Ubuntu zu einer der ersten großen Linux-Distributionen, die stark auf Rust für kritische Systemkomponenten setzt. Die Vorteile von Rust, wie Speicher-Sicherheit, weniger Bugs und ein sauberer Code, sind der Antrieb für diese Entscheidung. Dennoch gibt es Herausforderungen, wie die anfänglichen Leistungsprobleme beim cksum-Utility und die Schwierigkeiten des sort-Befehls mit sehr großen Einzeilendateien, die noch untersucht werden. Trotzdem laufen die meisten Rust-Utilities bereits stabil, und die Optimierungen am base64-Utility zeigen, dass die Rust-Version nun die GNU-Version übertrifft.

Die Erwartungen sind hoch, dass die verbleibenden Probleme vor der Veröffentlichung von Ubuntu 25.10 behoben werden. Das Ziel ist, eine solide Grundlage für Ubuntu 26.04 LTS zu schaffen, in der die Rust-basierten Coreutils zuverlässiger sein sollen. Diese Initiative von Canonical zeigt ein starkes Engagement für sicherere und modernere Systemwerkzeuge und könnte der Beginn einer neuen Ära in der Systementwicklung sein.

Für weiterführende Informationen zu Rust Coreutils Version 0.7 können die Release Notes auf Heise und die offizielle GitHub-Seite besucht werden.