UtgÄvan av projektet uutils coreutils 0.6.0 (Rust Coreutils) har publicerats, vilket utvecklar en alternativ version av GNU Coreutils-paketet, skriven i Rust. Coreutils innehÄller över ett hundra verktyg, inklusive sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln och ls. Projektets mÄl Àr att skapa en plattformsoberoende alternativ implementering av Coreutils, bland annat kapabel att fungera pÄ Windows, Redox och Fuchsia.
Rust Coreutils anvÀnds som standard i utgÄvan av Ubuntu 25.10 och anvÀnds i distributioner som AerynOS (Serpent OS) och Apertis (utvecklas av Collabora). Till skillnad frÄn GNU Coreutils, distribueras Rust-implementationen under den permissiva MIT-licensen, istÀllet för den copyleft-licens som GPL. Dessutom utvecklar samma team skrivna pÄ Rust analoger till verktygsuppsÀttningar som util-linux, diffutils, findutils, procps och acl, samt program som sed och login.
I den nya versionen av Rust Coreutils:
- En kompatibilitetsnivÄ med referenstestsviten för GNU Coreutils har uppnÄtts - 96,28 % (tidigare 87,75 %). 622 tester genomfördes framgÄngsrikt, vilket Àr 56 fler Àn i den tidigare versionen (566). 16 (tidigare 55) tester misslyckades, och 7 (tidigare 23) tester hoppades över. Det mest betydande lyftet i kompatibilitet uppmÀttes för verktygen sort, ls, date, cksum och tail.
- I date, sort, locale.rs och andra verktyg har kod som anvÀnde nyckelordet 'unsafe' tagits bort.
- Anrop till standardbiblioteket libc har ersatts med motsvarande skyddade anrop som tillhandahÄlls av paketet nix.
- Felkodshanteringen har förbÀttrats, och ovÀntade avstÀngningar vid skrivning till /dev/full har uteslutits.
- I verktyget date har lokaliserade namn för mÄnader och dagar implementerats med hjÀlp av ICU. Tids- och kalenderformatering har anpassats efter lokal.
- I verktyget sort har sortering av nummer med tusavskiljare implementerats, och parametrarna +POS/-POS har lagts till.
- I join-verktyget har stöd för lokala egenskaper för 'collation' lagts till, vilket möjliggör jÀmförelser med hÀnsyn till teckenens betydelse (t.ex. kan accenttecken försummas vid jÀmförelse).
- Prestandan för verktygen base32, base64, basenc och df har optimerats.
- I verktyget uniq har minnesanvÀndningen minskats vid fall utan beaktande av versaler.
- I verktyget shuf har numerisk utdata optimerats och alternativet 'ârandom-seed' har lagts till.
- I tsort har inlÀsningen av alla ingÄngsdata till minne uteslutits.
- I verktyget tail har flaggan 'âdebug' lagts till.
- I chmod-verktyget har problem med rekursiv exekvering av operationer Ă„tgĂ€rdats, och alternativet 'âpreserve-root' har lagts till.
- SÀkerheten vid navigering av kataloginnehÄll har stÀrkts pÄ Unix-liknande system.
- I verktygen ls, id, mkdir, mkfifo och mknod har stöd för mekanismen för obligatorisk Ätkomstkontroll SMACK lagts till.
- I det kontinuerliga integrationssystemet har en byggkontroll för 64-bitars RISC-V-system med musl-biblioteket lagts till.
- Prestandan har förbÀttrats pÄ Windows med anvÀndning av Cygwin.
- Funktionerna har utökats, problem har ÄtgÀrdats och saknade alternativ har lagts till för verktygen arch, base64, basename, cat, chgrp, chmod, chroot, cksum, comm, cp, csplit, date, dd, df, dir, dirname, du, echo, env, expand, expr, fmt, fold, groups, hashsum, head, hostid, id, install, join, kill, ln, logname, ls, mkdir, mkfifo, mknod, mktemp, more, mv, nice, nl, nohup, nproc, numfmt, pr, printenv, printf, ptx, readlink, rm, rmdir, runcon, seq, shred, shuf, sort, split, stat, stdbuf, stty, sync, tac, tail, tee, test, timeout, touch, truncate, tsort, uname, unexpand, uniq, uptime, users, wc, yes, ucore, uucore, uudoc.
KĂ€lla: opennet.ru
