Rust-en idatzitako POSIX utilitateen multzoa eta AV1 deskodetzailea

posixutils-rs 0.2.1 proiektuaren kaleratzea argitaratu da, Rust lengoaian POSIX estandarrean aipatutako komando lerroko utilitateen bilduma bat garatzeko eta bere eskakizunak betetzeko helburuarekin (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed, etab.). Garapenean, ahal den guztietan, dauden kaxa paketeak erabiltzen dira. posixutils-rs kodea MIT lizentziapean banatzen da.

Proiektua POSIX.2024 zehaztapenaren eskakizunak betetzen lortzera bideratzen da batez ere, eta ez du GNU utilitateekin bateragarritasuna eskaintzea asmorik, horien funtzionaltasuna arrazoirik gabe puztuta dagoela uste baitute egileek. Hala ere, posixutils-rs-ek lehendik dauden scriptetan aurkitzen diren GNU erabilgarritasun-aukerarik ezagunenak ezartzeko asmoa du.

Rust-en GNU Coreutils inplementazioa garatzen duen uutils proiektuaren desberdintasunek erabilgarritasun-esparru zabalagoa barne hartzen dute, besteak beste, besteak beste, vi, awk, bc, m4, cron eta c99 konpilatzailea bezalako POSIX sistemaren osagaiak sortzea. baita ikuspegi minimalista bat ere, hau da, POSIX zehaztapenean zehaztutako gutxieneko aukera-multzoa soilik eskaintzea dakarrela, edo horiek gabe egiteko problematikoak direnak. posixutils-rs suiteko programak hasiera batean beste proiektu batzuetan erabil daitezkeen kode autonomo gisa hornitzen dira.

Gaur egun, proiektuak garatutako 55 utilitatek POSIXarekin bat datoz eta proba-estaldura-fasean daude, 22 utilitatek beharrezko funtzionalitateak eskaintzen dituzte (baina proba-estaldura oraindik ez da ezarri), 20 zirriborro-fasean daude eta 44 utilitateetan ez da lan egin. oraindik hasia. Inplementatutako funtzionalitateak dituzten utilitateen artean: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Utilitateen artean, hasi ez diren lanak: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .

Bertsio berriaren aldaketek awk, m4, ps, realpath, join, time, fuser eta gencat utilitateen inplementazioak gehitzea, baita musl C liburutegian eta ftw-en hornikuntzan oinarritutako inguruneetan lan egiteko hasierako laguntza ere. estatuak babestutako direktorioen zuhaitzen zeharkako lasterketarako liburutegia.

Horrez gain, rav1d proiektuaren iragarpena nabarmendu dezakegu, zeina errendimendu handiko deskodetzaile bat garatzen ari baita AV1 bideo kodeketa formatuan, Rust hizkuntzan idatzia. Garapena dav1d liburutegiaren deskodetzaile kodea, errendimendu handiko ezaugarria dena, Rust-era eramanez egiten da. Prestatutako ataka guztiz bateragarria da dav1d liburutegiko APIarekin. Gure bertsioa idatzi beharrean lehendik dagoen liburutegi bat porturatzeko hautua, dagoeneko frogatutako eta probatutako deskodetzaile bat erabili nahi izateak azaltzen du, bateragarritasun-arazo posibleak saihesteko eta AV1 formatuarekin lan egiteko zailtasun guztiak kontuan hartzeko.

Gaur egungo forman, rav1d-en prestatutako inplementazioa dav6d-ren errendimenduan % 1 atzetik dago, baina etorkizunean, kodea optimizatu ondoren, errendimenduan parekotasuna lortzea aurreikusi da. Errendimendu handia lortzeko, balio primitiboak deskodetzeko oinarrizko funtzioak inplementatzen diren bloke seguruen moduan (dav1d-eko muntaketa-kodea erabiltzen da), korronteen analisiarekin egiaztatu ondoren jasotzen diren datuak. Rust-en idatzitako funtzioak (bideo-deskodetzaileetan ahultasunak identifikatzeko esperientziak erakusten du arazoak batez ere maila altuko formatuan analizatzeko kodean sortzen direla, maila baxuko datu-eragiketetan baino).

Iturria: opennet.ru

Gehitu iruzkin berria