Rilasciato uutils 0.3, una variante delle GNU Coreutils in linguaggio Rust

È stato pubblicato il rilascio del progetto uutils coreutils 0.3.0 (Rust Coreutils), che sviluppa un'alternativa al pacchetto GNU Coreutils, scritta in Rust. Il pacchetto coreutils comprende più di cento utilità, tra cui sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln e ls. L'obiettivo del progetto è creare un'implementazione alternativa cross-platform di Coreutils, in grado di funzionare su piattaforme come Windows, Redox e Fuchsia.

Rust Coreutils è incluso di default nella versione di Ubuntu 25.10 ed è utilizzato nelle distribuzioni AerynOS (Serpent OS) e Apertis (sviluppato da Collabora). A differenza di GNU Coreutils, l'implementazione in Rust è distribuita sotto una licenza permissiva MIT, invece della licenza copyleft GPL. Inoltre, lo stesso team di sviluppatori sta sviluppando versioni scritte in Rust degli strumenti util-linux, diffutils, findutils e procps, oltre ai programmi sed e login.

Nella nuova versione di Rust Coreutils:

  • Le prestazioni di alcune utilità sono state notevolmente migliorate, ad esempio, rispetto a GNU Coreutils, l'utilità sort è ora più veloce di 3.72 volte nella ordinaria ordinazione e di 1.46 volte nella ordinazione di numeri, base64 è più veloce di 1.2 volte, expand di 1.8 volte, unexpand di 1.5 volte, nl di 1.57 volte, fold di 1.19 volte, «uniq -c» di 1.13 volte.
  • Sulla base dello strumento CodSpeed è stata creata un'infrastruttura per il monitoraggio delle prestazioni. Il sistema di integrazione continua consente di rilevare le regressioni delle prestazioni. Sono stati aggiunti test di prestazioni per 15 utilità, tra cui sort, ls, uniq, du e base64.
  • Per le utilità rm, du, chmod e chgrp è stata implementata un'operazione sicura con percorsi di directory relativi, basata sull'uso delle funzioni openat e unlinkat.
  • La sicurezza è stata aumentata grazie all'uso del pacchetto crate nix invece di chiamate unsafe di libc.
  • È stata migliorata la gestione degli errori e avvicinata a quella di GNU Coreutils in molte utilità.
  • È stata migliorata la compatibilità con Coreutils nella gestione dei percorsi dei file, sia contenenti che non contenenti caratteri UTF8.
  • È stata migliorata la compatibilità con il set di test di riferimento di GNU Coreutils, completando con successo 532 test (nella versione precedente 538), 68 (52) test sono stati riscontrati come falliti, mentre 33 (27) test sono stati saltati. È dichiarato un livello di compatibilità dell'83.91% (era dell'87.06%). La riduzione del livello di compatibilità è spiegata dall'aggiunta di 16 nuovi test al set di test.
  • Nell'utilità date è stata implementata l'opzione «—reference=file» per visualizzare il tempo di modifica di un file. A causa della mancanza di questa opzione in Ubuntu, lo script di controllo automatico delle aggiornamenti ha smesso di funzionare. In date è stata anche consolidata la logica di parsing del tempo, migliorata la compatibilità con GNU date nell'implementazione dell'opzione «-d» e aggiunto il flag «—resolution» per visualizzare i dati sulla precisione della misurazione del tempo.
  • Sono state implementate le opzioni: «basenc —base58», «id -a», «ls -f», «pinky —lookup», «realpath -E», «rm —progress».
  • Sono state ampliate le funzionalità, risolti i problemi e aggiunte le opzioni mancanti per gli strumenti 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.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster