Aktualizace GNU Coreutils přepsaných v Rustu

Je představeno vydání sady nástrojů uutils coreutils 0.0.12, v rámci které se vyvíjí obdoba balíčku GNU Coreutils přepsaná do jazyka Rust. Coreutils přichází s více než stovkou nástrojů, včetně sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln a ls. Ve stejné době byl vydán balíček uutils findutils 0.3.0 s implementací v Rust utilit ze sady GNU Findutils (find, locate, updatedb a xargs).

Důvodem pro vytvoření projektu a použití jazyka Rust je touha vytvořit multiplatformní alternativní implementaci Coreutils a Findutils, schopnou běžet mimo jiné na platformách Windows, Redox a Fuchsia. Dalším důležitým rozdílem mezi uutils je to, že je šířen pod licencí MIT Permissive License, namísto licence GPL copyleft.

V současné době je implementace 88 utilit plně uvedena do souladu s GNU Coreutils. Jednotlivé chyby jsou zaznamenány v 18 nástrojích, včetně cp, dd, date, df, install, ls, more, sort, split, tail a test. Pouze nástroj stty zůstává neimplementován. Při absolvování testovací sady z projektu GNU Coreutils je úspěšně provedeno 214 testů, ale analog Rust zatím neprošel 313 testy. Zároveň se znatelně zvýšila intenzita vývoje projektu – měsíčně přibývá 400-470 patchů od 20-50 vývojářů místo 30-60 od 3-8 vývojářů před rokem.

Aktualizace GNU Coreutils přepsaných v Rustu

Mezi nejnovější úspěchy patří optimalizace výkonu – v současném stavu je mnoho utilit, jako je head a cut, ve výkonu výrazně lepší než možnosti z GNU Coreutils. Pokrytí testovací sady bylo rozšířeno z 55 % na 75 % veškerého kódu (80 % je dostatečný cíl). Kód byl refaktorován pro zjednodušení údržby, například bylo sjednoceno zpracování chyb v různých programech a kód pro práci s přístupovými právy byl sloučen do chgrp a chown. Bylo přidáno mnoho změn pro zlepšení kompatibility s GNU Coreutils.

Plány do budoucna zahrnují implementaci nástroje stty, pokračující práce na zlepšení kompatibility s GNU Coreutils, přidávání optimalizací pro snížení velikosti spustitelných souborů, stejně jako pokračující experimenty s používáním nástrojů uutils v Debianu a Ubuntu místo GNU Coreutils a GNU. Findutils (jeden z hlavních vývojářů uutils dříve pracoval na projektu sestavení Debian GNU/Linuxu pomocí kompilátoru Clang). Dále je zaznamenána příprava balíčku uutils-coreutils pro macOS, experimenty s nahrazením GNU Coreutils uutils coreutils v NixOS, záměr používat uutils coreutils ve výchozím nastavení v distribuci Apertis a přizpůsobení sady uutils pro Redox OS.

Zdroj: opennet.ru

Přidat komentář