Seti ya huduma za POSIX na dekoda ya AV1 iliyoandikwa kwa Rust

Kutolewa kwa mradi wa posixutils-rs 0.2.1 kumechapishwa, kwa lengo la kukuza katika lugha ya Rust mkusanyiko wa huduma za mstari wa amri zilizotajwa katika kiwango cha POSIX na kukidhi mahitaji yake (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed, n.k.). Wakati wa maendeleo, wakati wowote iwezekanavyo, vifurushi vya crate zilizopo hutumiwa. Nambari ya posixutils-rs inasambazwa chini ya leseni ya MIT.

Mradi huu unalenga hasa kufikia utiifu wa mahitaji ya vipimo vya POSIX.2024 na haupangii kutoa uoanifu na huduma za GNU, utendakazi wake ambao unachukuliwa na waandishi kuwa umevimba isivyofaa. Walakini, posixutils-rs inapanga kutekeleza chaguo maarufu zaidi za matumizi ya GNU zinazopatikana katika hati zilizopo.

Tofauti kutoka kwa mradi wa uutils, ambao unakuza utekelezaji wa GNU Coreutils huko Rust, ni pamoja na wigo mpana wa huduma, pamoja na, kati ya mambo mengine, uundaji wa vipengee vya mfumo wa POSIX kama vi, awk, bc, m4, cron na mkusanyaji wa c99, pamoja na mbinu ndogo , ambayo inamaanisha kutoa tu seti ya chini kabisa inayohitajika ya chaguzi zilizofafanuliwa katika vipimo vya POSIX au ambazo ni shida kufanya bila. Programu katika posixutils-rs Suite hapo awali hutolewa kama msimbo unaojitosheleza ambao unaweza kutumika katika miradi mingine.

Hivi sasa, huduma 55 zilizotengenezwa na mradi zinatii POSIX na ziko katika hatua ya chanjo ya majaribio, huduma 22 hutoa utendakazi unaohitajika (lakini huduma ya majaribio bado haijatekelezwa), 20 ziko katika hatua ya rasimu, na kazi kwenye huduma 44 hazijatekelezwa. bado imeanza. Miongoni mwa huduma zilizo na utendakazi uliotekelezwa: awk, jina la msingi, bc, cp, kata, chown, tarehe, diff, faili, pata, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Miongoni mwa huduma, kazi ambayo haijaanza: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, kiraka, pax, sed, sh, sccs, yacc, uucp, vi .

Mabadiliko katika toleo jipya ni pamoja na kuongezwa kwa utekelezaji wa awk, m4, ps, realpath, join, time, fuser na huduma za gencat, pamoja na usaidizi wa awali wa kufanya kazi katika mazingira kulingana na maktaba ya musl C na utoaji wa ftw. maktaba ya mbio za mti wa saraka zinazolindwa na serikali.

Zaidi ya hayo, tunaweza kutambua tangazo la mradi wa rav1d, ambao unatengeneza avkodare ya utendakazi wa hali ya juu kwa umbizo la usimbaji la video la AV1, lililoandikwa kwa lugha ya Rust. Uendelezaji unafanywa kwa kusambaza msimbo wa avkodare ya maktaba ya dav1d, ambayo ina sifa ya utendaji wa juu, hadi Rust. Bandari iliyotayarishwa inaoana kikamilifu na API ya maktaba ya dav1d. Chaguo la kuweka maktaba iliyopo badala ya kuandika toleo letu linaelezewa na hamu ya kutumia avkodare iliyothibitishwa na iliyojaribiwa kama msingi ili kuzuia shida zinazowezekana za utangamano na kuzingatia ugumu wote wa kufanya kazi na umbizo la AV1.

Katika hali yake ya sasa, utekelezaji uliotayarishwa wa rav1d ni 6% nyuma ya dav1d katika utendaji, lakini katika siku zijazo, baada ya kuboresha kanuni, imepangwa kufikia usawa katika utendaji. Ili kufikia utendaji wa hali ya juu, mbinu ilitumiwa ambayo kazi za kimsingi za kuorodhesha maadili ya zamani hutekelezwa katika mkusanyiko kwa njia ya vizuizi visivyo salama (msimbo wa kusanyiko kutoka kwa dav1d hutumiwa), data ambayo hupokelewa baada ya kukagua na uchanganuzi wa mkondo. vitendakazi vilivyoandikwa kwa Rust (uzoefu wa zamani katika kutambua udhaifu katika visimbuaji vya video huonyesha kuwa matatizo hujitokeza hasa katika msimbo wa uchanganuzi wa umbizo la kiwango cha juu, badala ya katika shughuli za data za kiwango cha chini).

Chanzo: opennet.ru

Kuongeza maoni