Yon seri sèvis piblik POSIX ak yon dekodeur AV1 ekri nan Rust

Yo te pibliye piblikasyon pwojè posixutils-rs 0.2.1, ki vize a devlope nan lang Rust yon koleksyon sèvis piblik liy kòmand ki mansyone nan estanda POSIX la ak satisfè kondisyon li yo (cp, mv, awk, make, vi, find, sòt, wc, xargs, sh, m4, sed, elatriye). Pandan devlopman, chak fwa sa posib, yo itilize pakè kès ki egziste deja. Kòd posixutils-rs distribye anba lisans MIT.

Pwojè a konsantre prensipalman sou reyalize konfòmite ak egzijans spesifikasyon POSIX.2024 la epi li pa planifye pou bay konpatibilite ak sèvis piblik GNU, otè yo konsidere fonksyonalite yo kòm san rezon. Sepandan, posixutils-rs planifye pou aplike opsyon itilite GNU avanse ki pi popilè yo jwenn nan script ki egziste deja yo.

Diferans ak pwojè uutils la, ki devlope aplikasyon GNU Coreutils nan Rust, genyen ladan yo yon pi gwo dimansyon sèvis piblik yo, ki gen ladan, pami lòt bagay, kreyasyon konpozan sistèm POSIX sa yo tankou vi, awk, bc, m4, cron ak du c99, osi byen ke yon apwòch minimalist , ki implique bay sèlman seri minimòm obligatwa nan opsyon defini nan spesifikasyon POSIX la oswa ki gen pwoblèm fè san yo pa. Pwogram yo nan suite posixutils-rs yo okòmansman apwovizyone kòm kòd endepandan ki ka itilize nan lòt pwojè.

Kounye a, 55 sèvis piblik devlope pa pwojè a konfòme ak POSIX epi yo nan etap pwoteksyon tès la, 22 sèvis piblik bay fonksyonalite ki nesesè yo (men pwoteksyon tès la poko aplike), 20 nan etap nan bouyon, ak travay sou 44 sèvis piblik pa gen okenn. ankò kòmanse. Pami sèvis piblik yo ak fonksyonalite aplike: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Pami sèvis piblik yo, travay ki poko kòmanse: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .

Chanjman ki fèt nan nouvo lage a gen ladan ajoute aplikasyon sèvis piblik awk, m4, ps, realpath, join, time, fuser ak gencat, ansanm ak sipò inisyal pou travay nan anviwònman ki baze sou bibliyotèk musl C ak dispozisyon ftw la. bibliyotèk pou ras traversal pye bwa anyè eta pwoteje.

Anplis de sa, nou ka sonje anons pwojè rav1d la, ki ap devlope yon dekodeur wo-pèfòmans pou fòma kodaj videyo AV1, ekri nan lang Rust. Devlopman se te pote soti nan pò kòd la dekodeur nan bibliyotèk la dav1d, ki se karakterize pa pèfòmans segondè, nan Rust. Pò ki prepare a konplètman konpatib ak API bibliyotèk dav1d la. Chwa pou pò yon bibliyotèk ki deja egziste olye pou yo ekri pwòp vèsyon nou an eksplike pa dezi a sèvi ak yon dekodeur ki deja pwouve ak teste kòm yon baz yo nan lòd pou fè pou evite pwoblèm konpatibilite posib epi pran an kont tout sibtilite ki genyen nan travay ak fòma AV1 la.

Nan fòm li ye kounye a, aplikasyon an prepare nan rav1d se 6% dèyè dav1d nan pèfòmans, men nan lavni an, apre yo fin optimize kòd la, li se te planifye reyalize egalite nan pèfòmans. Pou reyalize pèfòmans segondè, yo te itilize yon apwòch kote fonksyon debaz yo pou dekode valè primitif yo aplike nan asanblaj nan fòm blòk danjere (yo itilize kòd asanble soti nan dav1d), done yo resevwa apre tcheke ak analiz kouran. fonksyon ekri nan Rust (eksperyans sot pase yo nan idantifye frajilite nan dekodeur videyo montre ke pwoblèm yo sitou rive nan kòd la analiz fòma wo nivo, olye ke nan operasyon yo done ki ba-nivo).

Sous: opennet.ru

Add nouvo kòmantè