Bol zverejnený nový release projektu uutils coreutils 0.3.0 (Rust Coreutils), ktorý vyvíja analóg balíka GNU Coreutils napísaný v jazyku Rust. Coreutils obsahuje viac ako sto 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ívnu implementáciu Coreutils, schopnú pracovať na platformách Windows, Redox a Fuchsia.
Rust Coreutils je predvolene zaradený do vydania Ubuntu 25.10 a používa sa v distribúciách AerynOS (Serpent OS) a Apertis (vyvíjaný spoločnosťou Collabora). Na rozdiel od GNU Coreutils sa implementácia v Ruste distribuuje pod permisívnou licenciou MIT, namiesto copyleft licencie GPL. Ďalšie utilíty napísané v Ruste, ako util-linux, diffutils, findutils a procps, a programy sed a login, sa vyvíjajú rovnakým tímom vývojárov.
V novej verzii Rust Coreutils:
- Výrazne sa zvýšila výkonosť niektorých utilít, napríklad, v porovnaní s GNU Coreutils utilita sort je teraz rýchlejšia 3.72-krát pri bežnom triedení a 1.46-krát pri triedení čísel, base64 je rýchlejší 1.2-krát, expand 1.8-krát, unexpand — 1.5-krát, nl — 1.57-krát, fold — 1.19-krát, „uniq -c“ 1.13-krát.
- Na základe nástrojového balíka CodSpeed bola vytvorená infraštruktúra na sledovanie výkonu. V systéme kontinuálnej integrácie je zaistené odhaľovanie regresií vo výkonnosti. Pridané testy výkonu pre 15 utilít, medzi ktorými sú sort, ls, uniq, du a base64.
- Pre utilíty rm, du, chmod a chgrp bola implementovaná bezpečná práca s relatívnymi cestami adresárov, založená na použitiach funkcií openat a unlinkat.
- Zvýšená bezpečnosť vďaka používaniu crate balíka nix namiesto unsafe volaní libc.
- Zlepšené spracovanie chýb a priblížené k GNU Coreutils spracovanie chýb vo viacerých utilitách.
- Zlepšená kompatibilita s Coreutils pri práci so súborovými cestami, obsahujúcimi aj neobsahujúcimi UTF8 znaky.
- Zlepšená kompatibilita s referenčnou testovacou sadou GNU Coreutils, pri ktorej bolo úspešne vykonaných 532 testov (v predchádzajúcej verzii 538), 68 (52) testov zlyhalo, a 33 (27) testov bolo preskočených. Nahlásená úroveň kompatibility je 83.91% (naložené 87.06%). Pokles úrovne kompatibility je vysvetlený pridaním 16 nových testov do testovacej sady.
- V utilite date je implementovaná voľba „—reference=file“ na zobrazenie času poslednej úpravy súboru. Z dôvodu absencie tejto voľby prestal v Ubuntu fungovať skript na automatické overovanie dostupnosti aktualizácií. V date bola tiež konsolidovaná logika analýzy času, zlepšená kompatibilita v GNU date pri implementácii voľby „-d“ a pridaná voľba „—resolution“ na výstup informácií o presnosti merania času.
- Boli implementované voľby: „basenc —base58“, „id -a“, „ls -f“, „pinky —lookup“, „realpath -E“, „rm —progress“.
- Boli rozšírené možnosti, odstránené problémy a pridané chýbajúce voľby pre utilitky 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.
Zdroj: opennet.ru
