Usa ka set sa POSIX utilities ug usa ka AV1 decoder nga gisulat sa Rust

Ang pagpagawas sa posixutils-rs 0.2.1 nga proyekto gipatik, nga nagtumong sa pagpalambo sa Rust nga pinulongan sa usa ka koleksyon sa command line utilities nga gihisgutan sa POSIX standard ug pagtagbo sa mga kinahanglanon niini (cp, mv, awk, make, vi, find, matang, wc, xargs, sh, m4, sed, ug uban pa). Atol sa pag-uswag, kung mahimo, gigamit ang mga naglungtad nga mga pakete sa crate. Ang posixutils-rs code giapod-apod ubos sa lisensya sa MIT.

Ang proyekto nag-una nga naka-focus sa pagkab-ot sa pagsunod sa mga kinahanglanon sa POSIX.2024 nga espesipikasyon ug wala magplano sa paghatag og compatibility sa GNU utilities, ang functionality nga gitan-aw sa mga tagsulat ingon nga dili makatarunganon bloated. Bisan pa, ang posixutils-rs nagplano nga ipatuman ang labing inila nga advanced nga GNU utility nga mga kapilian nga makita sa naglungtad nga mga script.

Ang mga kalainan gikan sa proyekto sa uutils, nga nagpalambo sa pagpatuman sa GNU Coreutils sa Rust, naglakip sa usa ka mas lapad nga sakup sa mga utilities, lakip na, taliwala sa uban pang mga butang, ang paghimo sa ingon nga mga sangkap sa sistema sa POSIX sama sa vi, awk, bc, m4, cron ug ang c99 compiler, ingon man usa ka minimalistic nga pamaagi , nga nagpasabot sa paghatag lamang sa minimum nga gikinahanglan nga set sa mga opsyon nga gihubit sa POSIX specification o nga adunay problema nga buhaton nga wala. Ang mga programa sa posixutils-rs suite sa sinugdan gihatag isip self-contained code nga mahimong magamit sa ubang mga proyekto.

Sa pagkakaron, 55 ka mga utilities nga gimugna sa proyekto ang nagsunod sa POSIX ug anaa sa test coverage stage, 22 ka mga utilities ang naghatag sa gikinahanglang gamit (apan ang test coverage wala pa mapatuman), 20 anaa sa draft stage, ug ang pagtrabaho sa 44 ka mga utilities wala pa nagsugod pa. Lakip sa mga utilities nga adunay gipatuman nga gamit: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Lakip sa mga utilities, trabaho nga wala pa magsugod: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .

Ang mga pagbag-o sa bag-ong pagpagawas naglakip sa pagdugang sa mga implementasyon sa awk, m4, ps, realpath, join, time, fuser ug gencat utilities, ingon man ang inisyal nga suporta sa pagtrabaho sa mga palibot base sa musl C library ug ang probisyon sa ftw librarya alang sa directory nga gipanalipdan sa estado nga lumba sa pagtabok sa kahoy.

Dugang pa, mamatikdan nato ang pahibalo sa proyekto sa rav1d, nga nagpalambo sa usa ka high-performance decoder alang sa AV1 video coding format, nga gisulat sa Rust nga pinulongan. Ang pag-uswag gihimo pinaagi sa pag-port sa decoder code sa dav1d library, nga gihulagway sa taas nga performance, ngadto sa Rust. Ang giandam nga pantalan hingpit nga nahiuyon sa dav1d library API. Ang pagpili sa pag-port sa usa ka kasamtangan nga librarya imbes sa pagsulat sa atong kaugalingong bersyon gipatin-aw sa tinguha sa paggamit sa usa ka napamatud-an na ug nasulayan nga decoder isip basehan aron malikayan ang posibleng mga problema sa pagpahiangay ug isipa ang tanan nga mga intricacies sa pagtrabaho sa AV1 format.

Sa kasamtangan nga porma niini, ang giandam nga pagpatuman sa rav1d mao ang 6% sa likod sa dav1d sa performance, apan sa umaabot, human sa pag-optimize sa code, kini giplano nga makab-ot ang parity sa performance. Aron makab-ot ang taas nga pasundayag, gigamit ang usa ka pamaagi diin ang mga sukaranan nga gimbuhaton alang sa pag-decode sa mga primitive nga kantidad gipatuman sa assembler sa porma sa dili luwas nga mga bloke (gigamit ang code sa pag-assemble gikan sa dav1d), ang datos diin nadawat pagkahuman gisusi gamit ang pag-parse sa sapa. mga gimbuhaton nga gisulat sa Rust (kaniadto nga kasinatian sa pag-ila sa mga kahuyangan sa mga video decoder nagpakita nga ang mga problema nag-una nga motumaw sa taas nga lebel sa format nga parsing code, imbes sa ubos nga lebel nga operasyon sa datos).

Source: opennet.ru

Idugang sa usa ka comment