A fost publicată versiunea 0.6.0 a proiectului uutils coreutils (Rust Coreutils), care dezvoltă o alternativă a pachetului GNU Coreutils, scrisă în limbajul Rust. Coreutils conține peste o sută de utilitare, inclusiv sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln și ls. Scopul proiectului este de a crea o implementare alternativă cross-platform a Coreutils, capabilă să funcționeze pe platforme precum Windows, Redox și Fuchsia.
Rust Coreutils este utilizat implicit în release-ul Ubuntu 25.10 și este aplicat în distribuțiile AerynOS (Serpent OS) și Apertis (dezvoltat de Collabora). Spre deosebire de GNU Coreutils, implementarea în Rust este distribuită sub o licență permisivă MIT, în loc de licența copyleft GPL. De asemenea, aceeași echipă de dezvoltatori lucrează la analogi scriși în Rust pentru seturile de unelte util-linux, diffutils, findutils, procps și acl, precum și pentru programele sed și login.
În noua versiune a Rust Coreutils:
- S-a atins un nivel de compatibilitate cu setul de teste de referință GNU Coreutils de 96,28% (a fost 87,75%). Au fost executate cu succes 622 de teste, cu 56 mai mult decât în versiunea anterioară (566). 16 (a fost 55) teste au eșuat, iar 7 (a fost 23) teste au fost omise. Cele mai semnificative creșteri de compatibilitate au fost observate pentru utilitarele sort, ls, date, cksum și tail.
- Din date, sort, locale.rs și alte utilitare a fost eliminat codul care folosea cuvântul cheie „unsafe”.
- Referințele la biblioteca standard libc au fost înlocuite cu apeluri protejate echivalente, furnizate de pachetul nix.
- A fost îmbunătățită gestionarea erorilor, excluzând terminările neașteptate în cazul scrierii în /dev/full.
- În utilitarul date a fost implementată localizarea denumirilor lunilor și zilelor, având în vedere ICU. A fost asigurat formatul orelor și calendarului în funcție de localizare.
- În utilitarul sort a fost realizată sortarea numerelor cu delimitatori de mii și a fost implementată prelucrarea parametrilor +POS/-POS.
- În utilitarul join a fost adăugată suportul pentru proprietățile de localizare „collation”, care permit efectuarea comparatiilor având în vedere semnificația simbolurilor (de exemplu, în timpul comparării poate fi ignorat semnul diacritic).
- A fost optimizată performanța utilitarelor base32, base64, basenc și df.
- În utilitarul uniq a fost redus consumul de memorie atunci când se lucrează fără a ține cont de majuscule.
- În utilitarul shuf a fost optimizat outputul numeric și a fost adaugată opțiunea „—random-seed”.
- În tsort a fost exclusă încărcarea tuturor datelor de intrare în memorie.
- În utilitarul tail a fost adăugată opțiunea „—debug”.
- În utilitarul chmod au fost rezolvate problemele cu executarea recursivă a operațiunilor și a fost adăugată opțiunea „—preserve-root”.
- În sistemele de tip Unix, a fost întărită securitatea în timpul navigării prin conținutul directorilor.
- În utilitarele ls, id, mkdir, mkfifo și mknod a fost adăugată suportul pentru mecanismul de control al accesului mandat SMACK.
- În sistemul de integrare continuă a fost adăugată verificarea compilării pe sisteme RISC-V de 64 de biți cu biblioteca musl.
- A fost îmbunătățită funcționarea în Windows folosind Cygwin.
- Funcțiile au fost extinse, problemele rezolvate și opțiunile lipsă au fost adăugate pentru utilitarele 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.
Sursa: opennet.ro
