Actualització a GNU Coreutils, reescrit a Rust

Es presenta el llançament del conjunt d'eines uutils coreutils 0.0.12, dins del qual s'està desenvolupant un anàleg del paquet GNU Coreutils, reescrit en llenguatge Rust. Coreutils inclou més d'un centenar d'utilitats, com ara sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln i ls. Al mateix temps, es va llançar el paquet uutils findutils 0.3.0 amb una implementació a Rust de les utilitats del conjunt GNU Findutils (find, locate, updatedb i xargs).

El motiu de crear el projecte i utilitzar el llenguatge Rust és la voluntat de crear una implementació alternativa multiplataforma de Coreutils i Findutils, capaç d'executar-se a les plataformes Windows, Redox i Fuchsia, entre d'altres. Una altra diferència important entre uutils és que es distribueix sota la llicència permissiva del MIT, en lloc de la llicència copyleft GPL.

Actualment, la implementació de 88 utilitats ha estat totalment igualada amb GNU Coreutils. S'observen defectes individuals en 18 utilitats, incloent cp, dd, date, df, install, ls, more, sort, split, tail i prova. Només la utilitat stty roman sense implementar. En passar la suite de proves del projecte GNU Coreutils, s'executen amb èxit 214 proves, però l'analògic Rust encara no passa 313 proves. Al mateix temps, la intensitat del desenvolupament del projecte ha augmentat notablement: s'afegeixen 400-470 pegats al mes de 20-50 desenvolupadors en lloc de 30-60 de 3-8 desenvolupadors fa un any.

Actualització a GNU Coreutils, reescrit a Rust

Entre els darrers assoliments, es destaca l'optimització del rendiment: en l'estat actual, moltes utilitats, com ara head and cut, són significativament superiors en rendiment a les opcions de GNU Coreutils. La cobertura de la suite de proves s'ha ampliat del 55% al ​​75% de tot el codi (el 80% és un objectiu suficient). El codi s'ha refactoritzat per simplificar el manteniment, per exemple, la gestió d'errors s'ha unificat en diferents programes i el codi per treballar amb drets d'accés s'ha combinat en chgrp i chown. S'han afegit nombrosos canvis per millorar la compatibilitat amb GNU Coreutils.

Els plans per al futur inclouen la implementació de la utilitat stty, el treball continuat per millorar la compatibilitat amb GNU Coreutils, l'addició d'optimitzacions per reduir la mida dels fitxers executables, així com experiments continuats sobre l'ús de les utilitats uutils a Debian i Ubuntu en comptes de GNU Coreutils i GNU Findutils (un dels principals desenvolupadors d'uutils va treballar anteriorment en un projecte per construir Debian GNU/Linux utilitzant el compilador Clang). A més, s'observa la preparació del paquet uutils-coreutils per a macOS, experiments amb la substitució de GNU Coreutils per uutils coreutils a NixOS, la intenció d'utilitzar uutils coreutils per defecte a la distribució Apertis i l'adaptació del conjunt d'uutils per al sistema operatiu Redox.

Font: opennet.ru

Afegeix comentari