Objavljena je bila izdaja projekta posixutils-rs 0.2.1, katerega namen je v jeziku Rust razviti zbirko pripomočkov ukazne vrstice, ki so omenjeni v standardu POSIX in izpolnjujejo njegove zahteve (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed itd.). Med razvojem se, kadar koli je to mogoče, uporabljajo obstoječi paketi zabojev. Koda posixutils-rs se distribuira pod licenco MIT.
Projekt je osredotočen predvsem na doseganje skladnosti z zahtevami specifikacije POSIX.2024 in ne načrtuje zagotavljanja združljivosti s pripomočki GNU, katerih funkcionalnost se avtorjem zdi nerazumno napihnjena. Vendar posixutils-rs načrtuje implementacijo najbolj priljubljenih naprednih možnosti pripomočka GNU, ki jih najdemo v obstoječih skriptih.
Razlike od projekta uutils, ki razvija implementacijo GNU Coreutils v Rust, vključujejo širši obseg pripomočkov, med drugim tudi ustvarjanje sistemskih komponent POSIX, kot so vi, awk, bc, m4, cron in prevajalnik c99, kot tudi minimalističen pristop, ki pomeni zagotavljanje samo minimalnega zahtevanega nabora možnosti, opredeljenih v specifikaciji POSIX ali brez katerih je težko. Programi v zbirki posixutils-rs so na začetku dobavljeni kot samostojna koda, ki jo je mogoče uporabiti v drugih projektih.
Trenutno je 55 pripomočkov, razvitih v okviru projekta, skladnih s POSIX in so na stopnji testne pokritosti, 22 pripomočkov zagotavlja potrebno funkcionalnost (vendar testna pokritost še ni bila implementirana), 20 jih je v fazi osnutka, delo na 44 pripomočkih pa še ni še začelo. Med pripomočki z implementirano funkcionalnostjo: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Med pripomočki, katerih delo se še ni začelo: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .
Spremembe v novi izdaji vključujejo dodajanje izvedb pripomočkov awk, m4, ps, realpath, join, time, fuser in gencat ter začetno podporo za delo v okoljih, ki temeljijo na knjižnici musl C in zagotavljanju ftw knjižnica za državno zaščiteno imeniško drevesno dirko.
Poleg tega lahko opazimo napoved projekta rav1d, ki razvija visoko zmogljiv dekoder za format video kodiranja AV1, napisan v jeziku Rust. Razvoj poteka s prenosom kode dekoderja knjižnice dav1d, ki jo odlikuje visoka zmogljivost, na Rust. Pripravljena vrata so popolnoma združljiva z API-jem knjižnice dav1d. Odločitev za prenos obstoječe knjižnice namesto pisanja lastne različice je razložena z željo po uporabi že dokazanega in preizkušenega dekoderja kot osnove, da bi se izognili morebitnim težavam z združljivostjo in upoštevali vse zapletenosti dela s formatom AV1.
V trenutni obliki pripravljena izvedba rav1d zaostaja za dav6d v zmogljivosti za 1 %, vendar je v prihodnosti po optimizaciji kode načrtovana izenačenost v zmogljivosti. Za doseganje visoke zmogljivosti je bil uporabljen pristop, pri katerem so osnovne funkcije za dekodiranje primitivnih vrednosti implementirane v asemblerju v obliki nevarnih blokov (uporablja se zbirna koda iz dav1d), podatki v katere so prejeti po preverjanju z razčlenjevanjem toka funkcije, napisane v Rustu (pretekle izkušnje pri prepoznavanju ranljivosti v video dekoderjih kažejo, da se težave pojavljajo predvsem pri visokonivojski kodi za razčlenjevanje formata in ne pri nizkonivojskih podatkovnih operacijah).
Vir: opennet.ru
