Sortie de uutils 0.11, variante des GNU Coreutils en Rust

La sortie du projet uutils coreutils 0.11.0 (Rust Coreutils), développant un équivalent du paquet GNU Coreutils écrit en Rust, a été publiée. Coreutils comprend plus de cent utilitaires, y compris 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, capable de fonctionner sur les plateformes Windows, Redox et Fuchsia.

Rust Coreutils est utilisĂ© par dĂ©faut dans la distribution Ubuntu 25.10 et partiellement dans Ubuntu 26.04. Rust Coreutils est Ă©galement appliquĂ© dans les distributions AerynOS (Serpent OS) et Apertis (dĂ©veloppĂ© par Collabora). Contrairement Ă  GNU Coreutils, l'implĂ©mentation en Rust est distribuĂ©e sous la licence permissive MIT, au lieu de la licence copyleft GPL. De plus, la mĂȘme Ă©quipe de dĂ©veloppeurs travaille sur des analogues en Rust des ensembles d'utilitaires util-linux, diffutils, findutils, procps et acl, ainsi que des programmes sed et login.

Dans la nouvelle version de Rust Coreutils :

  • Le niveau de compatibilitĂ© avec la suite de tests de rĂ©fĂ©rence GNU Coreutils a atteint 95,33 % (contre 94,44 % auparavant). 653 tests ont Ă©tĂ© rĂ©ussis, soit 8 de plus que dans la version prĂ©cĂ©dente (645). 22 tests ont Ă©chouĂ© (contre 29), et 15 tests ont Ă©tĂ© ignorĂ©s (comme auparavant).
  • Un nouveau moteur de diagnostic basĂ© sur la bibliothĂšque ariadne a Ă©tĂ© intĂ©grĂ©, fournissant des rapports d'erreurs visuels lors de l'exĂ©cution des utilitaires dans le terminal, indiquant les arguments de ligne de commande responsables du problĂšme. La visualisation des erreurs est intĂ©grĂ©e dans les utilitaires chmod, mkdir, mkfifo, mknod, install, tr, expr, sort, numfmt, cut, env, head, tail, truncate, split, shred, stdbuf, od, seq, dd, stat, join, csplit, ls, df et du. Une variable d'environnement UUTILS_DIAG est proposĂ©e pour dĂ©sactiver les rapports de diagnostic.
  • Lors de la compilation des versions, des optimisations basĂ©es sur les rĂ©sultats de profilage de code (PGO - Optimisation guidĂ©e par le profil) ont Ă©tĂ© activĂ©es, permettant de gĂ©nĂ©rer un code plus optimal basĂ© sur l'analyse des caractĂ©ristiques d'exĂ©cution du programme. Selon les dĂ©veloppeurs, le gain de performance lors de certaines opĂ©rations a atteint jusqu'Ă  31 %.
  • La performance des utilitaires cp (+32,93 %), join (2,5 fois plus rapide que GNU en raison de la dĂ©sactivation de comparaisons de locale inutiles), od, ptx (+4 %), nl, tail, expand, unexpand, numfmt et sort a Ă©tĂ© optimisĂ©e. Les situations oĂč les opĂ©rations sont exĂ©cutĂ©es nettement plus lentement que dans GNU Coreutils sont dĂ©sormais considĂ©rĂ©es comme des erreurs.
  • Certaines divergences avec le comportement de GNU Coreutils dans les utilitaires pr, numfmt, join, id, mkdir, fold, sort, stat, od et date ont Ă©tĂ© corrigĂ©es.
  • Des options spĂ©cifiques Ă  GNU Coreutils ont Ă©tĂ© mises en Ɠuvre : « uname -A », « uname —all-labeled », « cut -F », « cut —whitespace-delimited », « pr —columns », « pr —join-lines », « pr -f ».
  • Dans les utilitaires mv, cp, rm, chmod, stdbuf, des amĂ©liorations de sĂ©curitĂ© ont Ă©tĂ© mises en place pour prĂ©venir l'apparition de vulnĂ©rabilitĂ©s causĂ©es par des conditions de course qui permettraient de modifier des donnĂ©es juste aprĂšs la vĂ©rification de leur validitĂ©, mais avant l'exĂ©cution de l'opĂ©ration les concernant. Par exemple, cela permettrait de substituer un fichier par un lien symbolique entre la fin de la vĂ©rification et le dĂ©but de l'opĂ©ration. Dans le cadre de l'utilisation des utilitaires cp, chmod et mv dans des scripts systĂšme exĂ©cutĂ©s avec des droits root, de telles vulnĂ©rabilitĂ©s permettent de copier ou d'Ă©craser des fichiers arbitraires.
  • Des travaux ont Ă©tĂ© rĂ©alisĂ©s pour corriger des arrĂȘts d'urgence dans les utilitaires split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac, who.
  • Des versions des utilitaires kill et uptime pour Windows ont Ă©tĂ© mises en Ɠuvre.
  • L'utilisation des paquets byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (rĂ©cemment compromis), exacl et dns-lookup a Ă©tĂ© abandonnĂ©e au profit de fonctions provenant des bibliothĂšques std, rustix et windows-sys.
  • Les utilitaires ls et comm ont Ă©tĂ© mis Ă  jour pour prendre en charge les propriĂ©tĂ©s de localisation 'collation', permettant de rĂ©aliser des comparaisons en tenant compte du sens des caractĂšres (par exemple, lors de la comparaison, l'accent peut ne pas ĂȘtre pris en compte).
  • Le traitement des caractĂšres multibytes a Ă©tĂ© amĂ©liorĂ© dans les utilitaires nl et cut.

De plus, on peut noter que Canonical a publié deux images de conteneurs expérimentaux contenant des outils pour le développement de programmes en Rust, conformes à la spécification Dev Container. La premiÚre image inclut Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (un interpréteur pour déceler le comportement indéfini), cargo-auditable (audit des compilations), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh et curl. La deuxiÚme image contient en plus des paquets pour le développement Ubuntu : git-buildpackage, sbuild, ubuntu-dev-tools, devscripts, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster