Sortie de uutils 0.3, la variante Rust de GNU Coreutils

La version 0.3.0 du projet uutils coreutils (Rust Coreutils) a été publiée. Ce projet développe un analogue du paquet GNU Coreutils, écrit en langage Rust. coreutils inclut plus d'une centaine d'utilitaires, dont sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln et ls. L'objectif du projet est de créer une implémentation alternative multiplateforme de Coreutils, compatible avec les plateformes Windows, Redox et Fuchsia.

Rust Coreutils est inclus par défaut dans Ubuntu 25.10 et utilisé dans les distributions AerynOS (Serpent OS) et Apertis (développée par Collabora). Contrairement à GNU Coreutils, l'implémentation de Rust est distribuée sous la licence permissive MIT, plutôt que sous la licence copyleft GPL. La même équipe de développeurs développe également des équivalents basés sur Rust des suites d'utilitaires util-linux, diffutils, findutils et procps, ainsi que des programmes sed et login.

Dans la nouvelle version de Rust Coreutils :

  • Les performances de certains utilitaires ont été considérablement améliorées. Par exemple, par rapport à GNU Coreutils, l'utilitaire de tri est désormais 3.72 fois plus rapide pour le tri standard et 1.46 fois plus rapide pour le tri des nombres ; base64 est 1.2 fois plus rapide ; expand est 1.8 fois plus rapide ; unexpand est 1.5 fois plus rapide ; nl est 1.57 fois plus rapide ; fold est 1.19 fois plus rapide ; et uniq -c est 1.13 fois plus rapide.
  • Une infrastructure de surveillance des performances a été créée à l'aide de la boîte à outils CodSpeed. Le système d'intégration continue assure la détection des régressions de performances. Des tests de performance ont été ajoutés pour 15 utilitaires, dont sort, ls, uniq, du et base64.
  • Pour les utilitaires rm, du, chmod et chgrp, un travail sécurisé avec des chemins de répertoire relatifs a été implémenté, basé sur l'utilisation des fonctions openat et unlinkat.
  • Sécurité améliorée en utilisant le package nix crate au lieu d'appels libc non sécurisés.
  • Gestion des erreurs améliorée et gestion des erreurs rapprochée de GNU Coreutils dans de nombreux utilitaires.
  • Compatibilité améliorée avec Coreutils lors de l'utilisation de chemins de fichiers contenant et ne contenant pas de caractères UTF8.
  • Amélioration de la compatibilité avec la suite de tests GNU Coreutils. 532 tests ont été réussis (538 dans la version précédente), 68 (52) ont échoué et 33 (27) ont été ignorés. Le taux de compatibilité est de 83.91 % (contre 87.06 %). Cette baisse de compatibilité est due à l'ajout de 16 nouveaux tests à la suite de tests.
  • L'utilitaire date inclut désormais l'option « --reference=file » pour afficher les heures de modification des fichiers. L'absence de cette option a entraîné l'arrêt du script de vérification automatique des mises à jour sous Ubuntu. date a également consolidé sa logique d'analyse temporelle, amélioré la compatibilité avec GNU date dans l'implémentation de l'option « -d » et ajouté l'option « --resolution » pour afficher les données de résolution temporelle.
  • Options implémentées : « basenc -base58 », « id -a », « ls -f », « pinky -lookup », « realpath -E », « rm -progress ».
  • Fonctionnalités étendues, problèmes résolus et options manquantes ajoutées pour les utilitaires base64, basenc, chgrp, chmod, cksum, cp, csplit, date, df, dirname, du, expand, expr, fold, hashsum, hostname, id, install, ln, ls, mv, nl, nohup, numfmt, od, pinky, ptx, realpath, rm, seq, sort, stat, stdbuf, stty, tail, timeout, touch, tsort, unexpand, uniq, uname, wc, who, uucore.

Source: opennet.ru

Ajouter un commentaire