Uppdatering av GNU Coreutils omskriven i Rust

Utgivningen av verktygssatsen uutils coreutils 0.0.12 presenteras, inom vilken en analog till GNU Coreutils-paketet, omskrivet på Rust-språket, utvecklas. Coreutils kommer med över hundra verktyg, inklusive sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln och ls. Samtidigt släpptes paketet uutils findutils 0.3.0 med en implementering i Rust av verktygen från GNU Findutils-uppsättningen (hitta, lokalisera, uppdateradb och xargs).

Anledningen till att skapa projektet och använda språket Rust är önskan att skapa en plattformsoberoende alternativ implementering av Coreutils och Findutils, som kan köras på bland annat Windows, Redox och Fuchsia-plattformar. En annan viktig skillnad mellan uutils är att den distribueras under MIT Permissive License, istället för GPL copyleft-licensen.

För närvarande har implementeringen av 88 verktyg blivit helt i paritet med GNU Coreutils. Individuella brister noteras i 18 verktyg, inklusive cp, dd, date, df, install, ls, more, sort, split, tail och test. Endast stty-verktyget förblir oimplementerat. När testsviten från GNU Coreutils-projektet klaras, exekveras 214 tester framgångsrikt, men Rust-analogen klarar ännu inte 313 tester. Samtidigt har intensiteten i projektutvecklingen ökat märkbart - 400-470 patchar läggs till per månad från 20-50 utvecklare istället för 30-60 från 3-8 utvecklare för ett år sedan.

Uppdatering av GNU Coreutils omskriven i Rust

Bland de senaste prestationerna noteras prestandaoptimering - i det nuvarande tillståndet är många verktyg, såsom huvud och skär, betydligt överlägsna i prestanda jämfört med alternativen från GNU Coreutils. Testsvittäckningen har utökats från 55 % till 75 % av all kod (80 % är ett tillräckligt mål). Koden har omstrukturerats för att förenkla underhållet, till exempel har felhanteringen förenats i olika program och kod för att arbeta med åtkomsträttigheter har kombinerats till chgrp och chown. Många ändringar har lagts till för att förbättra kompatibiliteten med GNU Coreutils.

Planer för framtiden inkluderar implementeringen av verktyget stty, fortsatt arbete med att förbättra kompatibiliteten med GNU Coreutils, lägga till optimeringar för att minska storleken på körbara filer, samt fortsatta experiment med att använda uutils-verktyg i Debian och Ubuntu istället för GNU Coreutils och GNU Findutils (en av huvudutvecklarna av uutils arbetade tidigare med ett projekt för att bygga Debian GNU/Linux med Clang-kompilatorn). Dessutom noteras förberedelserna av uutils-coreutils-paketet för macOS, experiment med att ersätta GNU Coreutils med uutils-coreutils i NixOS, avsikten att använda uutils-coreutils som standard i Apertis-distributionen, och anpassningen av uutils-inställningarna för Redox OS.

Källa: opennet.ru

Lägg en kommentar