Die Veröffentlichung des uutils coreutils 0.0.12 wurde vorgestellt, in deren Rahmen eine Alternative zu den GNU Coreutils, die in Rust neu geschrieben wurden, entwickelt wird. Die coreutils umfassen über einhundert Utilities, darunter sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln und ls. Gleichzeitig wurde das Paket uutils findutils 0.3.0 veröffentlicht, das die Rust-Implementierung der GNU Findutils-Utilities (find, locate, updatedb und xargs) beinhaltet.
Als Grund für die Schaffung des Projekts und die Verwendung der Programmiersprache Rust wird der Wunsch genannt, eine plattformübergreifende alternative Implementierung von Coreutils und Findutils zu schaffen, die auch auf Plattformen wie Windows, Redox und Fuchsia funktionieren kann. Ein weiteres wichtiges Unterscheidungsmerkmal von uutils ist die Verbreitung unter einer permissiven MIT-Lizenz, anstelle der Copyleft-Lizenz GPL.
Derzeit sind 88 Utilities vollständig auf Parität mit den GNU Coreutils gebracht. Für 18 Utilities werden einzelne Mängel festgestellt, darunter cp, dd, date, df, install, ls, more, sort, split, tail und test. Lediglich die Utility stty bleibt unerledigt. Im Testset des GNU Coreutils-Projekts werden 214 Tests erfolgreich bestanden, jedoch bestehen 313 Tests des Analogons in Rust noch nicht. Dabei hat sich die Entwicklungsgeschwindigkeit des Projekts merklich erhöht — pro Monat werden 400-470 Patches von 20-50 Entwicklern hinzugefügt, im Vergleich zu 30-60 von 3-8 Entwicklern vor einem Jahr.

Zu den jüngsten Errungenschaften zählt die Leistungsoptimierung — viele Utilities, wie head und cut, übertreffen in ihrem aktuellen Zustand deutlich die Varianten aus den GNU Coreutils in Bezug auf die Leistung. Die Abdeckung des Testsets wurde von 55% auf 75% des gesamten Codes erweitert (ein ausreichendes Ziel sind 80%). Der Code wurde refaktoriert, um die Wartung zu vereinfachen, zum Beispiel wurde die Fehlerbehandlung in verschiedenen Programmen vereinheitlicht, und in chgrp und chown wurde der Code für den Umgang mit Zugriffsrechten zusammengeführt. Zahlreiche Änderungen wurden hinzugefügt, um die Kompatibilität mit den GNU Coreutils zu verbessern.
Zukünftige Pläne umfassen die Implementierung des stty-Tools, die Weiterentwicklung der Kompatibilität mit GNU Coreutils, die Hinzufügung von Optimierungen zur Reduzierung der Größe von ausführbaren Dateien sowie die Fortsetzung von Experimenten zur Verwendung von uutils anstelle von GNU Coreutils und GNU Findutils in Debian und Ubuntu (einer der Hauptentwickler von uutils arbeitete früher an einem Projekt zur Sicherstellung der Erstellung von Debian GNU/Linux unter Verwendung des Compilers Clang). Darüber hinaus wird die Vorbereitung des Pakets uutils-coreutils für macOS, Experimente mit dem Austausch von GNU Coreutils durch uutils coreutils in NixOS, die Absicht, uutils coreutils standardmäßig in der Distribution Apertis zu verwenden, sowie die Anpassung des uutils-Sets für Redox OS erwähnt.
Quelle: opennet.ru
