Projektet uutils coreutils 0.11.0 (Rust Coreutils), en utveckling av GNU Coreutils-paketet, skrivet i Rust, har släppts. coreutils innehåller över 100 verktyg, inklusive sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln och ls. Projektets mål är att skapa ett plattformsoberoende alternativ till Coreutils, kapabelt att köras på plattformar som inkluderar Windows, Redox och Fuchsia.
Rust Coreutils aktiverade som standard i utgåvan Ubuntu 25.10 och delvis i Ubuntu 26.04 april. Rust Coreutils används också i distributionerna AerynOS (Serpent OS) och Apertis (utvecklad av Collabora). Till skillnad från GNU Coreutils distribueras Rust-implementationen under den tillåtande MIT-licensen, istället för den upphovsrättsskyddade GPL. Dessutom utvecklar samma team av utvecklare Rust-baserade motsvarigheter till verktygssviterna util-linux, diffutils, findutils, procps och acl, samt programmen sed och login.
I den nya versionen av Rust Coreutils:
- Kompatibilitetsgraden med GNU Coreutils benchmark-svit var 95.33 % (en minskning från 94.44 %). 653 tester klarades, 8 fler än i den föregående versionen (645). 22 tester misslyckades (en minskning från 29) och 15 tester hoppades över (en minskning från 15).
- En ny diagnostikmotor baserad på ariadne-biblioteket har integrerats. Den visar visuella felrapporter när verktyg körs i terminalen och markerar de kommandoradsargument som orsakade problemet. Felvisualisering är aktiverad i följande verktyg: 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 och du. Miljövariabeln UUTILS_DIAG föreslås för att inaktivera diagnostikrapporter.

- Profilstyrd optimering (PGO) aktiveras under versionsversioner, vilket genererar mer optimal kod baserat på en analys av programkörningsbeteende. Utvecklare uppskattar prestandavinster på upp till 31 % för vissa operationer.
- Prestandaoptimeringar har implementerats för verktygen cp (+32.93 %), join (2.5 gånger snabbare än GNU genom att inaktivera onödiga språkjämförelser), od, ptx (+4 %), nl, tail, expand, unexpand, numfmt och sort. Situationer med operationer som var märkbart långsammare än i GNU Coreutils betraktas nu som buggar.
- Åtgärdade vissa avvikelser med GNU Coreutils i beteendet hos verktygen pr, numfmt, join, id, mkdir, fold, sort, stat, od och date.
- Implementerade GNU Coreutils-specifika alternativ: "uname -A", "uname --all-labeled", "cut -F", "cut --whitespace-delimited", "pr --columns", "pr --join-lines", "pr -f".
- Verktygen mv, cp, rm, chmod och stdbuf har stärkts för att förhindra sårbarheter orsakade av kapplöpningsförhållanden, vilka kan tillåta att data ändras efter att informationen har verifierats men innan en åtgärd utförs. Till exempel kan en fil ersättas med en symbolisk länk mellan verifieringens slutförande och åtgärdens start. När man använder verktygen cp, chmod och mv i systemskript som körs med root-behörighet kan sådana sårbarheter tillåta att godtyckliga filer kopieras eller skrivs över.
- Arbete har utförts för att eliminera krascher i verktygen split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac och who.
- Implementerade varianter av kill- och uptime-verktygen för Windows.
- Paketen byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (nyligen komprometterad), exacl och dns-lookup har föråldrats till förmån för funktioner från biblioteken std, rustix och windows-sys.
- Verktygen ls och comm har nu stöd för språkegenskapen "collation", vilket gör att jämförelser kan göras med hänsyn till teckens betydelse (till exempel kan accenttecken ignoreras under jämförelse).
- Förbättrad hantering av multibytetecken i verktygen nl och cut.
Dessutom har Canonical släppt två experimentella containeravbildningar för Rust-utveckling som följer Dev Container-specifikationen. Den första avbildningen innehåller Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (en tolk för att upptäcka odefinierat beteende), cargo-auditable (bygggranskning), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh och curl. Den andra avbildningen innehåller även utvecklingspaket. Ubuntugit-byggpaket, sbuild, ubuntu-utvecklingsverktyg, utvecklingsskript, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.
Källa: opennet.ru

