A pesawat saka keperluan POSIX lan decoder AV1 ditulis ing Rust

Rilis proyek posixutils-rs 0.2.1 wis diterbitake, ngarahake ngembangake ing basa Rust koleksi utilitas baris perintah sing kasebut ing standar POSIX lan nyukupi syarate (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed, lsp). Sajrone pangembangan, yen bisa, paket peti sing ana digunakake. Kode posixutils-rs disebarake miturut lisensi MIT.

Proyèk iki fokus utamane kanggo nggayuh syarat spesifikasi POSIX.2024 lan ora ngrancang nyedhiyakake kompatibilitas karo utilitas GNU, fungsionalitas sing dianggep penulis minangka kembung sing ora wajar. Nanging, posixutils-rs ngrancang kanggo ngleksanakake opsi sarana GNU canggih sing paling populer sing ditemokake ing skrip sing wis ana.

Bedane saka proyek uutils, sing ngembangake implementasi GNU Coreutils ing Rust, kalebu ruang lingkup utilitas sing luwih akeh, kalebu, ing antarane, nggawe komponen sistem POSIX kayata vi, awk, bc, m4, cron lan c99 compiler, uga minangka pendekatan minimalis, sing mung nyedhiyakake pilihan minimal sing dibutuhake sing ditetepake ing spesifikasi POSIX utawa sing ana masalah kanggo nindakake tanpa. Program ing suite posixutils-rs wiwitane diwenehake minangka kode mandiri sing bisa digunakake ing proyek liyane.

Saiki, 55 utilitas sing dikembangake dening proyek kasebut tundhuk karo POSIX lan ana ing tahap jangkoan tes, 22 utilitas nyedhiyakake fungsi sing dibutuhake (nanging jangkoan tes durung dileksanakake), 20 ana ing tahap rancangan, lan nggarap 44 utilitas durung. durung diwiwiti. Antarane utilitas kanthi fungsi sing diimplementasikake: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Antarane utilitas, karya sing durung diwiwiti: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .

Owah-owahan ing rilis anyar kalebu tambahan implementasine awk, m4, ps, realpath, gabung, wektu, fuser lan gencat, uga dhukungan awal kanggo makarya ing lingkungan adhedhasar perpustakaan musl C lan pranata ftw. perpustakaan kanggo lomba traversal wit direktori dilindhungi negara.

Kajaba iku, kita bisa nyathet woro-woro proyek rav1d, sing ngembangake dekoder kinerja dhuwur kanggo format kode video AV1, sing ditulis nganggo basa Rust. Pangembangan ditindakake kanthi porting kode dekoder perpustakaan dav1d, sing ditondoi kanthi kinerja dhuwur, menyang Rust. Port sing disiapake kompatibel karo API perpustakaan dav1d. Pilihan kanggo port perpustakaan sing wis ana tinimbang nulis versi kita dhewe diterangake kanthi kepinginan kanggo nggunakake decoder sing wis kabukten lan diuji minangka basis supaya ora ana masalah kompatibilitas lan njupuk kabeh kerumitan nggarap format AV1.

Ing wangun saiki, implementasine sing disiapake saka rav1d yaiku 6% ing mburi dav1d ing kinerja, nanging ing mangsa ngarep, sawise ngoptimalake kode kasebut, direncanakake kanggo entuk kesetaraan ing kinerja. Kanggo entuk kinerja sing dhuwur, pendekatan digunakake ing ngendi fungsi dhasar kanggo dekoding nilai primitif dileksanakake ing assembler ing wangun blok sing ora aman (kode perakitan saka dav1d digunakake), data sing ditampa sawise mriksa kanthi parsing stream. fungsi sing ditulis ing Rust (pengalaman kepungkur kanggo ngenali kerentanan ing dekoder video nuduhake yen masalah utamane muncul ing kode parsing format tingkat dhuwur, tinimbang ing operasi data tingkat rendah).

Source: opennet.ru

Add a comment