Megjelent a posixutils-rs 0.2.1 projekt kiadása, melynek célja a POSIX szabványban említett parancssori segédprogramok gyűjteményének fejlesztése a Rust nyelven, amely megfelel a követelményeknek (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed stb.). A fejlesztés során lehetőség szerint a meglévő ládacsomagokat használják fel. A posixutils-rs kódot az MIT licence alatt terjesztik.
A projekt elsősorban a POSIX.2024 specifikáció követelményeinek való megfelelésre összpontosít, és nem tervezi kompatibilitást biztosítani a GNU segédprogramokkal, amelyek funkcionalitását a szerzők indokolatlanul felduzzadtnak tartják. A posixutils-rs azonban a létező szkriptekben található legnépszerűbb speciális GNU segédprogramok megvalósítását tervezi.
A GNU Coreutils Rustban való megvalósítását fejlesztő uutils projekttől való eltérések közé tartozik a segédprogramok szélesebb köre, többek között az olyan POSIX rendszerkomponensek létrehozása, mint a vi, awk, bc, m4, cron és a c99 fordító, valamint egy minimalista megközelítés, amely azt jelenti, hogy csak a POSIX specifikációban meghatározott minimálisan szükséges opciókészletet kell megadni, vagy amelyek nélkül problémás. A posixutils-rs programcsomagban lévő programokat eredetileg önálló kódként szállítják, amely más projektekben is használható.
Jelenleg 55, a projekt által kifejlesztett segédprogram felel meg a POSIX-nek, és tesztelési szakaszban van, 22 segédprogram biztosítja a szükséges funkcionalitást (de a tesztlefedettség még nem valósult meg), 20 a tervezet stádiumában van, és 44 segédprogram még nem. mégis elkezdődött. A megvalósított funkcionalitással rendelkező segédprogramok közül: awk, alapnév, bc, cp, cut, chown, dátum, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. A segédprogramok közül, amelyek munkája még nem kezdődött el: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .
Az új kiadás változásai közé tartozik az awk, m4, ps, realpath, join, time, fuser és gencat segédprogramok megvalósítása, valamint a musl C könyvtáron alapuló környezetekben való munkavégzés kezdeti támogatása és az ftw biztosítása. könyvtár az állam által védett címtárfa bejárási versenyhez.
Emellett megjegyezzük a rav1d projekt bejelentését, amely egy nagy teljesítményű dekódert fejleszt az AV1 videó kódolási formátumhoz, Rust nyelven írva. A fejlesztés a nagy teljesítményre jellemző dav1d könyvtár dekódoló kódjának Rust-ra történő portolásával történik. Az előkészített port teljes mértékben kompatibilis a dav1d könyvtár API-val. A saját verzió írása helyett egy meglévő könyvtár portolásának a választása azzal magyarázható, hogy egy már bevált és tesztelt dekódert kívánunk alapul venni, hogy elkerüljük az esetleges kompatibilitási problémákat, és figyelembe vegyük az AV1 formátummal való munka minden bonyolultságát.
A rav1d előkészített implementációja jelenlegi formájában teljesítményben 6%-kal elmarad a dav1d mögött, de a jövőben a kód optimalizálása után a tervek szerint teljesítménybeli paritást érnek el. A nagy teljesítmény elérése érdekében olyan megközelítést alkalmaztak, amelyben a primitív értékek dekódolásának alapvető funkciói az assemblerben nem biztonságos blokkok formájában valósulnak meg (a dav1d összeállítási kódját használják), amelyekbe az adatok a stream elemzéssel történő ellenőrzés után kerülnek be. Rust nyelven írt függvények (a videodekóderek sebezhetőségeinek azonosításával kapcsolatos múltbeli tapasztalatok azt mutatják, hogy a problémák elsősorban a magas szintű formátum értelmező kódjában adódnak, nem pedig az alacsony szintű adatműveletek során).
Forrás: opennet.ru
