Update van de GNU Coreutils herschreven in Rust

De release van de toolkit uutils coreutils 0.0.12 wordt gepresenteerd, waarin een analoog van het GNU Coreutils-pakket, herschreven in de Rust-taal, wordt ontwikkeld. Coreutils wordt geleverd met meer dan honderd hulpprogramma's, waaronder sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln en ls. Tegelijkertijd werd het uutils findutils 0.3.0-pakket uitgebracht met een implementatie in Rust van de hulpprogramma's uit de GNU Findutils-set (find, localiseer, bijgewerktb en xargs).

De reden voor het opzetten van het project en het gebruik van de Rust-taal is de wens om een ​​platformonafhankelijke alternatieve implementatie van Coreutils en Findutils te creëren, die onder meer op Windows-, Redox- en Fuchsia-platforms kan draaien. Een ander belangrijk verschil tussen uutils is dat het wordt gedistribueerd onder de MIT Permissive License, in plaats van de GPL copyleft-licentie.

Momenteel is de implementatie van 88 hulpprogramma's volledig op één lijn gebracht met GNU Coreutils. Individuele fouten worden opgemerkt in 18 hulpprogramma's, waaronder cp, dd, date, df, install, ls, more, sort, split, tail en test. Alleen het hulpprogramma stty is nog niet geïmplementeerd. Bij het behalen van de testsuite van het GNU Coreutils-project zijn 214 tests met succes uitgevoerd, maar de Rust-analoog doorstaat nog geen 313 tests. Tegelijkertijd is de intensiteit van de projectontwikkeling merkbaar toegenomen: er worden 400-470 patches per maand toegevoegd door 20-50 ontwikkelaars in plaats van 30-60 door 3-8 ontwikkelaars een jaar geleden.

Update van de GNU Coreutils herschreven in Rust

Een van de nieuwste prestaties is prestatie-optimalisatie: in de huidige staat zijn veel hulpprogramma's, zoals head en cut, qua prestaties aanzienlijk superieur aan de opties van GNU Coreutils. De dekking van de testsuites is uitgebreid van 55% naar 75% van alle code (80% is voldoende). De code is opnieuw vormgegeven om het onderhoud te vereenvoudigen. Zo is de foutafhandeling in verschillende programma's verenigd en is de code voor het werken met toegangsrechten gecombineerd in chgrp en chown. Er zijn talloze wijzigingen toegevoegd om de compatibiliteit met GNU Coreutils te verbeteren.

Plannen voor de toekomst omvatten de implementatie van het hulpprogramma stty, voortgezette werkzaamheden om de compatibiliteit met GNU Coreutils te verbeteren, het toevoegen van optimalisaties om de grootte van uitvoerbare bestanden te verkleinen, evenals voortdurende experimenten met het gebruik van uutils-hulpprogramma's in Debian en Ubuntu in plaats van GNU Coreutils en GNU Findutils (een van de belangrijkste ontwikkelaars van uutils werkte eerder aan een project om Debian GNU/Linux te bouwen met behulp van de Clang-compiler). Daarnaast worden de voorbereiding van het uutils-coreutils-pakket voor macOS, experimenten met het vervangen van GNU Coreutils door uutils coreutils in NixOS, de intentie om uutils coreutils standaard te gebruiken in de Apertis-distributie, en de aanpassing van de uutils-set voor Redox OS vermeld.

Bron: opennet.ru

Voeg een reactie