La version 0.0.12 de l’outil uutils coreutils a été présentée, dans laquelle un équivalent du package GNU Coreutils réécrit en Rust est développé. Le package coreutils comprend plus d'une centaine d'outils, y compris sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln et ls. Parallèlement, le package uutils findutils 0.3.0 a été publié avec l'implémentation en Rust des outils du set GNU Findutils (find, locate, updatedb et xargs).
La raison de la création du projet et de l'utilisation de Rust est le désir de créer une alternative multiplateforme à l'implémentation de Coreutils et Findutils, capable de fonctionner également sur les plateformes Windows, Redox et Fuchsia. Une autre différence importante des uutils est qu'ils sont distribués sous une licence permissive MIT, au lieu de la licence copyleft GPL.
Actuellement, 88 outils ont été entièrement portés pour atteindre la parité avec GNU Coreutils. Des lacunes sont notées dans 18 outils, y compris cp, dd, date, df, install, ls, more, sort, split, tail et test. L'outil stty reste non implémenté. Lors de l'exécution du test de la suite du projet GNU Coreutils, 214 tests sont réussis, mais 313 tests de l'équivalent en Rust échouent encore. Cependant, l'intensité du développement du projet a considérablement augmenté — entre 400 et 470 correctifs par mois de 20 à 50 développeurs, contre 30 à 60 correctifs d'un à trois développeurs l'année dernière.

Parmi les récentes réalisations, on note l'optimisation des performances — dans son état actuel, de nombreux outils tels que head et cut dépassent de loin en performance les versions de GNU Coreutils. La couverture des tests a été étendue de 55 % à 75 % de l'ensemble du code (un objectif suffisant est de 80 %). Une refonte du code a été réalisée pour simplifier la maintenance, par exemple, le traitement des erreurs est maintenant unifié dans différents programmes, et le code pour la gestion des autorisations a été combiné dans chgrp et chown. De nombreux changements ont été apportés pour améliorer la compatibilité avec GNU Coreutils.
Parmi les projets futurs, on note la mise en œuvre de l'outil stty, la poursuite des travaux d'amélioration de la compatibilité avec GNU Coreutils, l'ajout d'optimisations pour réduire la taille des fichiers exécutables, ainsi que la poursuite des expériences sur l'utilisation des utilitaires uutils au lieu de GNU Coreutils et GNU Findutils dans Debian et Ubuntu (l'un des principaux développeurs d'uutils a précédemment travaillé sur un projet visant à permettre la compilation de Debian GNU/Linux avec le compilateur Clang). De plus, il est noté que le paquet uutils-coreutils pour macOS est en préparation, des expériences sont menées pour remplacer GNU Coreutils par uutils coreutils dans NixOS, et il est prévu d'utiliser uutils coreutils par défaut dans la distribution Apertis, ainsi que l'adaptation du paquet uutils pour Redox OS.
Source : opennet.ru
