Entwicklung & Code

Rust Coreutils 0.3.0: Bis zu 3,7-mal schneller als GNU-Tools


close notice

This article is also available in
English.

It was translated with technical assistance and editorially reviewed before publication.

Das Projekt Rust Coreutils hat Version 0.3.0 veröffentlicht und liefert damit erhebliche Geschwindigkeitsverbesserungen gegenüber den traditionellen GNU Core Utilities. Nach Angaben der Entwickler übertrifft das sort-Kommando die GNU-Variante beim regulären Sortieren um den Faktor 3,72. Auch andere Werkzeuge wurden deutlich beschleunigt: expand arbeitet 1,8-mal schneller, nl ist 1,57-mal flotter unterwegs.

Weiterlesen nach der Anzeige

Die Rust Coreutils sind eine Neuimplementierung der über 100 klassischen Unix-Kommandozeilenprogramme wie ls, cp oder rm, die ursprünglich in C geschrieben wurden. Einige Nutzer sind bereits umgestiegen: Canonical setzt die Rust-Tools in Ubuntu 25.10 standardmäßig ein. Die Entwickler der Rust-Coreutils streben eine hundertprozentige Kompatibilität mit GNU an, damit bestehende Skripte der Anwender ohne Anpassungen weiter funktionieren.

Für die kontinuierliche Überwachung der Performance-Entwicklung haben die Entwickler die Plattform CodSpeed in ihre CI/CD-Pipeline integriert. Das System erkennt automatisch Performance-Verschlechterungen und stellt sicher, dass Optimierungen auch langfristig erhalten bleiben. Die Benchmarks decken mittlerweile über 15 zentrale Werkzeuge ab, darunter sort, ls, uniq, du und base64. Auch base64 (1,2-mal schneller), unexpand (1,5-mal schneller) und uniq -c (1,13-mal schneller) profitieren von den Anpassungen.

Ein wesentlicher Schwerpunkt der Version 0.3.0 liegt auf der verbesserten Sicherheit. Die Entwickler haben für die Werkzeuge rm, du, chmod und chgrp eine sichere Directory-Traversal-Implementierung umgesetzt, die auf den Systemaufrufen openat und unlinkat basiert. Statt unsicherer libc-Aufrufe kommt dabei das nix-Crate zum Einsatz, das speichersichere Abstraktionen bereitstellt – einer der Hauptvorteile von Rust gegenüber C.

Bei der Kompatibilität mit der GNU-Test-Suite erreichen die Rust-Coreutils aktuell 532 bestandene Tests – eine Quote von 83,91 Prozent. Gegenüber Version 0.1 (damals: 87,06 Prozent) scheint das zunächst ein Rückschritt zu sein. Die Entwickler erklären dies jedoch mit dem Upgrade der Referenzimplementierung von GNU Coreutils 9.7 auf 9.8, wodurch sich Testerwartungen bei bestehenden Prüfungen änderten und 16 neue Tests hinzukamen. Somit stieg die Gesamtzahl der Tests von 618 auf 634. Von den neuen Tests schlagen 68 fehl, 33 werden übersprungen und einer führt zu einem Fehler.

Weiterlesen nach der Anzeige

Für Entwickler bringt das Update ebenfalls Verbesserungen: Die Generierung von Dokumentation und Shell-Completions wurde aus den Binaries ausgelagert, was die Build-Zeiten verkürzt. Die CI-Pipeline kompiliert Benchmarks nun parallel, und das Makefile unterstützt verschiedene Build-Konfigurationen besser.

Die aktuelle Version steht auf der Projektwebsite zum Download bereit. Neben den genannten Verbesserungen wurden zahlreiche weitere Details optimiert, darunter die Unicode- und Non-UTF8-Pfadunterstützung sowie das Fehlerhandling quer durch verschiedene Utilities. Weitere Informationen finden sich in den Release Notes auf GitHub.


(fo)



Source link

Beliebt

Die mobile Version verlassen