Ir publicēts projekta posixutils-rs 0.2.1 laidiens, kura mērķis ir Rust valodā izstrādāt POSIX standartā minēto komandrindas utilītu kolekciju un atbilst tā prasībām (cp, mv, awk, make, vi, find, šķirot, wc, xargs, sh, m4, sed utt.). Izstrādes laikā, kad vien iespējams, tiek izmantotas esošās kastes paketes. Posixutils-rs kods tiek izplatīts saskaņā ar MIT licenci.
Projekts galvenokārt ir orientēts uz POSIX.2024 specifikācijas prasību izpildes sasniegšanu un neplāno nodrošināt saderību ar GNU utilītiem, kuru funkcionalitāti autori uztver kā nepamatoti uzpūstu. Tomēr posixutils-rs plāno ieviest populārākās uzlabotās GNU utilīta opcijas, kas atrodamas esošajos skriptos.
Atšķirības no uutils projekta, kas attīsta GNU Coreutils ieviešanu Rust, ietver plašāku utilītu klāstu, tostarp, cita starpā, tādu POSIX sistēmas komponentu izveidi kā vi, awk, bc, m4, cron un c99 kompilators, kā arī minimālisma pieeja, kas paredz nodrošināt tikai minimālo nepieciešamo opciju kopu, kas definēta POSIX specifikācijā vai bez kurām ir problemātiski iztikt. Programmas komplektā posixutils-rs sākotnēji tiek piegādātas kā autonoms kods, ko var izmantot citos projektos.
Patlaban 55 projektā izstrādātie komunālie pakalpojumi atbilst POSIX un atrodas testa pārklājuma stadijā, 22 komunālie pakalpojumi nodrošina nepieciešamo funkcionalitāti (bet testa pārklājums vēl nav ieviests), 20 ir projekta stadijā, bet darbs pie 44 utilītiem nav. vēl sācies. Starp utilītprogrammām ar ieviesto funkcionalitāti: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Starp utilītprogrammām, pie kurām darbs nav sācies: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .
Izmaiņas jaunajā laidienā ietver awk, m4, ps, realpath, join, time, fuser un gencat utilītu ieviešanas pievienošanu, kā arī sākotnējo atbalstu darbam vidēs, kuru pamatā ir musl C bibliotēka, un ftw nodrošināšanu. bibliotēka valsts aizsargātajam direktoriju koka šķērsošanas skrējienam.
Turklāt mēs varam atzīmēt paziņojumu par projektu rav1d, kas izstrādā augstas veiktspējas dekodētāju AV1 video kodēšanas formātam, kas rakstīts Rust valodā. Izstrāde tiek veikta, pārnesot dav1d bibliotēkas dekodētāja kodu, kam raksturīga augsta veiktspēja, uz Rust. Sagatavotais ports ir pilnībā savietojams ar dav1d bibliotēkas API. Izvēle portēt esošu bibliotēku, nevis rakstīt savu versiju ir izskaidrojama ar vēlmi par pamatu izmantot jau pārbaudītu un pārbaudītu dekodētāju, lai izvairītos no iespējamām saderības problēmām un ņemtu vērā visas darba ar AV1 formātu sarežģītības.
Pašreizējā formā sagatavotā rav1d implementācija veiktspējā atpaliek no dav6d par 1%, bet turpmāk pēc koda optimizācijas plānots panākt veiktspējas paritāti. Lai sasniegtu augstu veiktspēju, tika izmantota pieeja, kurā primitīvo vērtību dekodēšanas pamatfunkcijas tiek realizētas montētājā nedrošu bloku veidā (tiek izmantots montāžas kods no dav1d), kurā dati tiek saņemti pēc pārbaudes ar straumes parsēšanu. funkcijas, kas rakstītas Rust (iepriekšējā pieredze video dekoderu ievainojamību identificēšanā liecina, ka problēmas galvenokārt rodas augsta līmeņa formāta parsēšanas kodā, nevis zema līmeņa datu operācijās).
Avots: opennet.ru
