Actualizarea opțiunii GNU Coreutils, rescrisă în limbajul Rust

A fost lansată versiunea instrumentarului uutils coreutils 0.0.12, în care se dezvoltă o alternativă la pachetul GNU Coreutils, rescris în limbajul Rust. Pachetul coreutils include peste o sută de utilitare, inclusiv sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln și ls. Simultan a fost lansat pachetul uutils findutils 0.3.0 cu implementarea în limbajul Rust a utilitarelor din setul GNU Findutils (find, locate, updatedb și xargs).

Motivul creării proiectului și utilizării limbajului Rust este dorința de a crea o implementare alternativă multiplatformă a Coreutils și Findutils, capabilă să funcționeze inclusiv pe platformele Windows, Redox și Fuchsia. O altă diferență semnificativă a uutils este distribuția sub licența permisivă MIT, în loc de licența copyleft GPL.

În prezent, au fost complet aliniate 88 de utilitare la GNU Coreutils. Unele neajunsuri sunt semnalate în 18 utilitare, inclusiv cp, dd, date, df, install, ls, more, sort, split, tail și test. Utilitarul stty rămâne încă neimplementat. În cadrul setului de teste al proiectului GNU Coreutils, 214 teste sunt executate cu succes, dar 313 teste ale analogului pe Rust nu trec deocamdată. Totuși, intensitatea dezvoltării proiectului a crescut semnificativ — în fiecare lună se adaugă 400-470 de patch-uri de la 20-50 de dezvoltatori, comparativ cu 30-60 de la 3-8 dezvoltatori acum un an.

Actualizarea opțiunii GNU Coreutils, rescrisă în limbajul Rust

Printre cele mai recente realizări se numără optimizarea performanței — în actualul stadiu, multe utilitare, cum ar fi head și cut, depășesc semnificativ versiunile din GNU Coreutils. Acoperirea setului de teste a fost extinsă de la 55% la 75% din întregul cod (un obiectiv suficient este 80%). A fost efectuat un refactoring al codului pentru a simplifica întreținerea, de exemplu, a fost unificată gestionarea erorilor în diferite programe, iar codul pentru chgrp și chown a fost combinat pentru a lucra cu permisiunile de acces. Au fost adăugate numeroase modificări pentru a îmbunătăți compatibilitatea cu GNU Coreutils.

Planurile de viitor includ implementarea utilitarului stty, continuarea lucrului pentru îmbunătățirea compatibilității cu GNU Coreutils, adăugarea optimizărilor pentru reducerea dimensiunii fișierelor executabile, precum și continuarea experimentelor privind utilizarea utilitarelor uutils în Debian și Ubuntu în locul GNU Coreutils și GNU Findutils (unul dintre dezvoltatorii principali ai uutils a lucrat anterior la un proiect de asigurare a compilării Debian GNU/Linux folosind compilatorul Clang). De asemenea, se menționează pregătirea pachetului uutils-coreutils pentru macOS, experimentele de înlocuire a GNU Coreutils cu uutils coreutils în NixOS, intenția de a folosi uutils coreutils ca implicit în distribuția Apertis și adaptarea setului uutils pentru Redox OS.

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