Projekt uutils coreutils 0.11.0 (Rust Coreutils), vývoj balíka GNU Coreutils napísaného v Ruste, bol vydaný. coreutils obsahuje viac ako 100 utilít vrátane sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln a ls. Cieľom projektu je vytvoriť multiplatformovú alternatívu ku Coreutils, schopnú bežať na platformách vrátane Windows, Redox a fuchsia.
Rust Coreutils je v tejto verzii štandardne povolený Ubuntu 25.10 a čiastočne v Ubuntu 26.04. apríla. Rust Coreutils sa používa aj v distribúciách AerynOS (Serpent OS) a Apertis (vyvinutý spoločnosťou Collabora). Na rozdiel od GNU Coreutils je implementácia Rust distribuovaná pod permisívnou licenciou MIT namiesto copyleftovej GPL. Okrem toho ten istý tím vývojárov vyvíja ekvivalenty balíkov util-linux, diffutils, findutils, procps a acl založené na Ruste, ako aj programy sed a login.
V novej verzii Rust Coreutils:
- Miera kompatibility s benchmarkovým balíkom GNU Coreutils bola 95.33 % (pokles z 94.44 %). Úspešne bolo vykonaných 653 testov, čo je o 8 viac ako v predchádzajúcej verzii (645). 22 testov zlyhalo (pokles z 29) a 15 testov bolo vynechaných (pokles z 15).
- Bol integrovaný nový diagnostický engine založený na knižnici ariadne. Pri spustení utilít v termináli zobrazuje vizuálne chybové hlásenia a zvýrazňuje argumenty príkazového riadka, ktoré spôsobili problém. Vizualizácia chýb je povolená v nasledujúcich utilitách: 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 a du. Na zakázanie diagnostických hlásení sa navrhuje premenná prostredia UUTILS_DIAG.

- Optimalizácia riadená profilmi (PGO) je povolená počas zostavovania vydaných verzií a generuje optimálnejší kód na základe analýzy správania sa pri vykonávaní programu. Vývojári odhadujú zvýšenie výkonu až o 31 % pre niektoré operácie.
- Boli implementované optimalizácie výkonu pre utility cp (+32.93 %), join (2.5-krát rýchlejšie ako GNU vďaka zakázaniu nepotrebných porovnávaní lokalizácií), od, ptx (+4 %), nl, tail, expand, unexpand, numfmt a sort. Situácie s operáciami, ktoré boli citeľne pomalšie ako v GNU Coreutils, sa teraz považujú za chyby.
- Opravené niektoré nezrovnalosti s GNU Coreutils v správaní utilít pr, numfmt, join, id, mkdir, fold, sort, stat, od a date.
- Implementované možnosti špecifické pre GNU Coreutils: „uname -A“, „uname --all-labeled“, „cut -F“, „cut --whitespace-delimited“, „pr --columns“, „pr --join-lines“, „pr -f“.
- Nástroje mv, cp, rm, chmod a stdbuf boli posilnené, aby sa predišlo zraniteľnostiam spôsobeným súbehom, ktoré by mohli umožniť úpravu údajov po overení informácií, ale pred vykonaním operácie. Napríklad súbor by mohol byť nahradený symbolickým odkazom medzi dokončením overenia a začiatkom operácie. Pri použití nástrojov cp, chmod a mv v systémových skriptoch spúšťaných s oprávneniami root by takéto zraniteľnosti mohli umožniť kopírovanie alebo prepísanie ľubovoľných súborov.
- Boli vykonané práce na odstránení zlyhaní v nástrojoch split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac a who.
- Implementované varianty utilít kill a uptime pre Windows.
- Balíky byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (nedávno kompromitovaný), exacl a dns-lookup boli zrušené v prospech funkcií z knižníc std, rustix a windows-sys.
- Nástroje ls a comm teraz podporujú vlastnosť locale „collation“, ktorá umožňuje porovnávanie s ohľadom na význam znakov (napríklad diakritiku možno počas porovnávania ignorovať).
- Vylepšené spracovanie viacbajtových znakov v nástrojoch nl a cut.
Spoločnosť Canonical okrem toho vydala dva experimentálne obrazy kontajnerov pre vývoj v Ruste, ktoré spĺňajú špecifikáciu Dev Container. Prvý obraz obsahuje Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (interpret na detekciu nedefinovaného správania), cargo-auditable (audit zostavenia), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh a curl. Druhý obraz obsahuje aj vývojové balíky. Ubuntugit-buildpackage, sbuild, ubuntu-dev-tools, devscripts, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.
Zdroj: opennet.ru

