Komek karûbarên POSIX û dekoderek AV1 ku bi Rust hatî nivîsandin

Serbestberdana projeya posixutils-rs 0.2.1 hate weşandin, ku armanc ew e ku bi zimanê Rust berhevokek karûbarên rêza fermanê yên ku di standarda POSIX-ê de têne destnîşan kirin pêşve bibin û hewcedariyên wê bicîh bînin (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed, hwd.). Di dema pêşkeftinê de, gava ku gengaz be, pakêtên kulîlkên heyî têne bikar anîn. Koda posixutils-rs di bin lîsansa MITê de tê belav kirin.

Proje di serî de balê dikişîne ser pêkanîna pêdiviya pêdiviya POSIX.2024 û plan nake ku bi karûbarên GNU re hevahengiyê peyda bike, ku fonksiyona wê ji hêla nivîskaran ve wekî bêmaqûl tê dîtin. Lêbelê, posixutils-rs plan dike ku vebijarkên pêşkeftî yên GNU yên herî populer ên ku di nivîsarên heyî de têne dîtin bicîh bîne.

Cûdahiyên ji projeya uutils, ku pêkanîna GNU Coreutils li Rust pêş dixe, çarçoveyek berfereh a karûbaran dihewîne, di nav de, afirandina pêkhateyên pergala POSIX wekî vi, awk, bc, m4, cron û berhevkarê c99, û her weha nêzîkatiyek mînîmalîst, ku tê vê wateyê ku tenê vebijarkên herî hindik ên hewce yên ku di taybetmendiya POSIX-ê de hatine destnîşan kirin an ku kirin bêyî wan pirsgirêk in peyda dike. Bernameyên di komika posixutils-rs de di destpêkê de wekî kodek xweser têne peyda kirin ku dikare di projeyên din de were bikar anîn.

Heya nuha, 55 karûbarên ku ji hêla projeyê ve hatine pêşve xistin bi POSIX-ê re tevdigerin û di qonaxa vegirtina ceribandinê de ne, 22 karûbar fonksiyona pêwîst peyda dikin (lê vegirtina ceribandinê hîn nehatiye bicîh kirin), 20 di qonaxa pêşnûmeyê de ne, û xebata li ser 44 kargêran nehatiye kirin. hîn dest pê kiriye. Di nav karûbarên bi fonksiyonên bicîhkirî de: awk, name base, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, dûvik, tr, tty, wc, uniq. Di nav karûbaran de, xebata ku dest pê nekiriye: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .

Guhertinên di berdana nû de lêzêdekirina pêkanînên awk, m4, ps, realpath, join, dem, fuser û gencat, û her weha piştgirîya destpêkê ji bo xebata li hawîrdorên li ser bingeha pirtûkxaneya musl C û peydakirina ftw hene. pirtûkxane ji bo pêşbaziya dara pelrêça parastî ya dewletê.

Wekî din, em dikarin ragihandina projeya rav1d, ku ji bo formata kodkirina vîdyoyê AV1, ku bi zimanê Rust hatî nivîsandin, dekoderek bi performansa bilind pêşve dike, destnîşan bikin. Pêşveçûn bi veguhestina koda dekoderê ya pirtûkxaneya dav1d, ku bi performansa bilind ve tête diyar kirin, ji Rust re tête kirin. Porta amadekirî bi API-ya pirtûkxaneya dav1d re bi tevahî hevaheng e. Hilbijartina veguheztina pirtûkxaneyek heyî li şûna nivîsandina guhertoya xweya xwe bi xwestek tê rave kirin ku meriv dekoderek jixwe îsbatkirî û ceribandî wekî bingehek bikar bîne da ku ji pirsgirêkên lihevhatinê yên mimkun dûr nekevin û hemî tevliheviyên xebata bi formata AV1 re bêne hesibandin.

Di forma xweya heyî de, pêkanîna amadekirî ya rav1d di performansê de% 6 li paş dav1d ye, lê di pêşerojê de, piştî xweşbînkirina kodê, tê plansaz kirin ku meriv di performansê de wekheviyê bi dest bixe. Ji bo bidestxistina performansa bilind, nêzîkatiyek hate bikar anîn ku tê de fonksiyonên bingehîn ên ji bo deşîfrekirina nirxên seretayî di astendaran de di forma blokên neewle de têne bicîh kirin (koda kombûnê ji dav1d tê bikar anîn), daneyên ku tê de têne wergirtin piştî kontrolkirina bi parsana stream fonksiyonên ku di Rust de hatine nivîsandin (tecrûbeya berê ya di tespîtkirina qelsiyên di dekoderên vîdyoyê de destnîşan dike ku pirsgirêk bi piranî di koda parskirina formata-asta bilind de, ne di operasyonên daneya nizm de derdikevin holê).

Source: opennet.ru

Add a comment