Lansarea uutils 0.9, variantă a GNU Coreutils în limbajul Rust

A fost publicat release-ul proiectului uutils coreutils 0.9.0 (Rust Coreutils), care dezvoltă un echivalent al pachetului GNU Coreutils, scris în limbajul Rust. Pachetul 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ă, multiplatformă, a Coreutils, capabilă, printre altele, să funcționeze pe platforme precum Windows, Redox și Fuchsia.

Rust Coreutils
este utilizat implicit în release-ul Ubuntu 25.10 și parțial în Ubuntu 26.04. Rust Coreutils este de asemenea folosit în distribuțiile AerynOS (Serpent OS) și Apertis (dezvoltat de compania Collabora). Spre deosebire de GNU Coreutils, implementarea pe Rust este distribuită sub o licență permisivă MIT, în loc de licența copyleft GPL. În plus, aceeași echipă de dezvoltatori dezvoltă analogi ai pachetelor de utilități util-linux, diffutils, findutils, procps și acl, precum și programelor sed și login, toate scrise în Rust.

În noua versiune a Rust Coreutils:

  • Nivelul de compatibilitate cu setul de teste de referință GNU Coreutils a fost de 90.58% (față de 94.74%). Au fost completate cu succes 625 de teste, cu 5 mai puțin decât în versiunea precedentă (630). 56 de teste au eșuat (față de 21), un test a generat o eroare, iar 8 teste au fost omise (față de 14). Scăderea nivelului de compatibilitate se explică prin actualizarea setului de teste la starea release-ului GNU Coreutils 9.11, care a adăugat 25 de teste noi.
  • Au fost remediate 44 de vulnerabilități identificate în urma unui audit efectuat de compania Zellic. Majoritatea vulnerabilităților sunt cauzate de discrepanțe în comportamentul față de GNU Coreutils sau de stări de competiție care permit modificarea datelor după ce informațiile au fost verificate, dar înainte de a se efectua operațiunea cu ele, de exemplu, prin înlocuirea unui fișier cu un link simbolic între finalizarea verificării și începutul procesării. În contextul utilizării utilitarelor cp, chmod și mv în scripturile de sistem rulate cu privilegii de root, astfel de vulnerabilități permit copierea sau suprascrierea fișierelor arbitrare. Pentru a proteja împotriva vulnerabilităților cauzate de stările de competiție, proiectul utilizează modulul uucore::safe_copy. Informațiile privind vulnerabilitățile au fost publicate într-o știre separată.
  • A fost continuată migrarea utilitarelor către pachetul crate rustix în loc de pachetul crate nix. Utilitarele id, tr, timeout, sort, wc, tail, cp, who și factor au fost migrate pe rustix.
    A fost efectuată curățarea codului de operațiunile unsafe în diverse utilitare.
  • În utilitarele cat, wc, head, tail, yes, cp, tee și unexpand sunt folosite gestionare a intrării/ieșirii bazate pe apeluri de sistem splice(), tee() și pipe(), care au permis accelerarea procesului prin eliminarea copiilor inutile de date între bufere.
  • A fost îmbunătățită compatibilitatea cu utilitarele GNU Coreutils numfmt, date, tr, cksum, factor, head, stat și sort.
  • Utilitarele ln, dd, mktemp și tty au fost adăugate suport pentru construire în format WebAssembly și utilizarea interfeței WASI (WebAssembly System Interface).
  • Funcționalitățile au fost extinse, problemele au fost rezolvate și opțiunile lipsă au fost adăugate pentru utilitarele cat, chroot, cksum,
    cp, date, dd, df, dirname, du, echo, env, expr, factor, fmt, head, id, install, join, ln, logname, ls, md5sum, mkdir, mknod, mktemp, more, mv, nl, nohup, nproc, numfmt, od, paste, pinky, pr, realpath, rm, rmdir, shred, sort, split, stat, stdbuf, stty, sum, sync, tail, tee, timeout, touch, tr, tty, unexpand, uniq, uptime, wc, who, yes.
  • Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster