De release van het uutils coreutils 0.3.0-project (Rust Coreutils) is gepubliceerd, wat een alternatieve versie van het GNU Coreutils-pakket is, geschreven in Rust. Coreutils bevat meer dan honderd hulpprogramma's, waaronder sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln en ls. Het doel van het project is het creëren van een cross-platform alternatieve implementatie van Coreutils, die onder andere kan werken op de platforms Windows, Redox en Fuchsia.
Rust Coreutils is standaard ingeschakeld in de release van Ubuntu 25.10 en wordt toegepast in de distributies AerynOS (Serpent OS) en Apertis (ontwikkeld door Collabora). In tegenstelling tot GNU Coreutils, wordt de implementatie in Rust verspreid onder de permissieve MIT-licentie in plaats van de copyleft GPL-licentie. Bovendien ontwikkelt hetzelfde team van ontwikkelaars Rust-analogen van de util-linux, diffutils, findutils en procps hulpprogramma's, evenals de programma's sed en login.
In de nieuwe versie van Rust Coreutils:
- De prestaties van sommige hulpprogramma's zijn aanzienlijk verbeterd; bijvoorbeeld, vergeleken met GNU Coreutils is het hulpprogramma sort nu 3,72 keer sneller bij standaard sorteren en 1,46 keer bij het sorteren van getallen, is base64 1,2 keer sneller, expand 1,8 keer, unexpand 1,5 keer, nl 1,57 keer, fold 1,19 keer, en 'uniq -c' 1,13 keer.
- Op basis van de CodSpeed-toolset is een infrastructuur opgezet voor het volgen van prestaties. In het continue integratiesysteem is er een detectie van regressies in de prestaties geïmplementeerd. Prestatie-tests zijn toegevoegd voor 15 hulpprogramma's, waaronder sort, ls, uniq, du en base64.
- Voor de hulpprogramma's rm, du, chmod en chgrp is veilige operation met relatieve directory-paden geïmplementeerd, gebaseerd op het gebruik van de functies openat en unlinkat.
- De beveiliging is verhoogd door het gebruik van het crate-pakket nix in plaats van onveilige libc-aanroepen.
- De foutafhandeling is verbeterd en meer in lijn gebracht met de foutafhandeling in GNU Coreutils in veel hulpprogramma's.
- De compatibiliteit met Coreutils is verbeterd bij het werken met bestandsroutes die wel en niet UTF8-tekens bevatten.
- De compatibiliteit met de referentietestset van GNU Coreutils is verbeterd, waarbij 532 tests succesvol zijn uitgevoerd (in de vorige versie 538), 68 (52) tests zijn mislukt en 33 (27) tests zijn overgeslagen. Het niveau van compatibiliteit is opgegeven op 83,91% (was 87,06%). De afname van het compatibiliteitsniveau wordt verklaard door de toevoeging van 16 nieuwe tests aan het testset.
- In de date-tool is de optie «—reference=file» geïmplementeerd voor het weergeven van de laatste wijzigingstijd van een bestand. Door het ontbreken van deze optie werkt het script voor automatische updatecontrole niet meer op Ubuntu. In date is ook de logica voor tijd parsing geconsolideerd, is de compatibiliteit in GNU date verbeterd met de implementatie van de optie «-d» en is de vlag «—resolution» toegevoegd voor het weergeven van gegevens over de tijdnauwkeurigheid.
- De opties zijn geïmplementeerd: «basenc —base58», «id -a», «ls -f», «pinky —lookup», «realpath -E», «rm —progress».
- De mogelijkheden zijn uitgebreid, problemen zijn opgelost en ontbrekende opties zijn toegevoegd voor de tools 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.
Bron: opennet.ru
