Bylo zveřejněno vydání projektu posixutils-rs 0.2.1, jehož cílem je v jazyce Rust vyvinout sbírku nástrojů příkazového řádku uvedených ve standardu POSIX a splnit jeho požadavky (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed atd.). Během vývoje, kdykoli je to možné, se používají stávající balíčky přepravek. Kód posixutils-rs je distribuován pod licencí MIT.
Projekt je zaměřen především na dosažení souladu s požadavky specifikace POSIX.2024 a neplánuje zajistit kompatibilitu s GNU utilitami, jejichž funkčnost je autory vnímána jako nepřiměřeně nabubřelá. Posixutils-rs však plánuje implementovat nejpopulárnější pokročilé možnosti GNU utility, které se nacházejí ve stávajících skriptech.
Rozdíly od projektu uutils, který vyvíjí implementaci GNU Coreutils v Rustu, zahrnují širší rozsah utilit, včetně mimo jiné vytváření takových systémových komponent POSIX, jako je vi, awk, bc, m4, cron a kompilátor c99, stejně jako minimalistický přístup, který předpokládá poskytování pouze minimální požadované sady možností definovaných ve specifikaci POSIX nebo bez kterých je problematické se obejít. Programy v sadě posixutils-rs jsou zpočátku dodávány jako samostatný kód, který lze použít v jiných projektech.
V současné době je 55 utilit vyvinutých v rámci projektu v souladu s POSIX a jsou ve fázi testovacího pokrytí, 22 utilit poskytuje potřebnou funkcionalitu (ale testovací pokrytí ještě nebylo implementováno), 20 je ve fázi návrhu a práce na 44 utilitách dosud neproběhly. ještě započaté. Mezi nástroje s implementovanou funkčností: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Mezi nástroje, na kterých práce ještě nezačaly: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .
Změny v nové verzi zahrnují přidání implementací utilit awk, m4, ps, realpath, join, time, fuser a gencat, stejně jako počáteční podporu pro práci v prostředích založených na knihovně musl C a poskytování ftw knihovna pro státem chráněný závod procházení stromem adresářů.
Navíc si můžeme všimnout oznámení projektu rav1d, který vyvíjí vysoce výkonný dekodér pro formát kódování videa AV1 napsaný v jazyce Rust. Vývoj probíhá portováním dekodérového kódu knihovny dav1d, která se vyznačuje vysokým výkonem, na Rust. Připravený port je plně kompatibilní s API knihovny dav1d. Volba portovat existující knihovnu místo psaní vlastní verze je vysvětlena přáním použít jako základ již osvědčený a otestovaný dekodér, abychom se vyhnuli případným problémům s kompatibilitou a zohlednili všechny složitosti práce s formátem AV1.
V současné podobě je připravovaná implementace rav1d výkonnostně o 6 % za dav1d, ale v budoucnu se po optimalizaci kódu plánuje dosažení parity ve výkonu. Pro dosažení vysokého výkonu byl použit přístup, ve kterém jsou základní funkce pro dekódování primitivních hodnot implementovány v assembleru ve formě nebezpečných bloků (používá se montážní kód z dav1d), do kterých jsou data přijímána po kontrole pomocí parsování proudu. funkce napsané v Rustu (minulé zkušenosti s identifikací zranitelností ve video dekodérech ukazují, že problémy vznikají hlavně v kódu analýzy na vysoké úrovni, spíše než v operacích s daty na nízké úrovni).
Zdroj: opennet.ru
