Eng Rei vu POSIX Utilities an en AV1 Decoder geschriwwen a Rust

D'Verëffentlechung vum posixutils-rs 0.2.1 Projet gouf publizéiert, zielt fir an der Rust Sprooch eng Sammlung vu Kommandozeilen Utilities z'entwéckelen, déi am POSIX Standard erwähnt sinn a seng Ufuerderungen erfëllen (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed, etc.). Wärend der Entwécklung, wa méiglech, existéierend Këschtpakete ginn benotzt. De posixutils-rs Code gëtt ënner der MIT Lizenz verdeelt.

De Projet konzentréiert sech haaptsächlech op d'Konformitéit mat den Ufuerderunge vun der POSIX.2024 Spezifizéierung a plangt net Kompatibilitéit mat GNU Utilities ze bidden, d'Funktionalitéit vun deenen vun den Autoren als onverständlech opgeblosen ugesi gëtt. Wéi och ëmmer, posixutils-rs plangt déi populärste fortgeschratt GNU Utility Optiounen ëmzesetzen, déi an existente Skripte fonnt ginn.

D'Ënnerscheeder vum uutils-Projet, deen d'GNU Coreutils Implementatioun am Rust entwéckelt, enthalen e méi breeden Ëmfang vun Utilities, ënner anerem d'Schafung vun esou POSIX Systemkomponenten wéi vi, awk, bc, m4, cron an den c99 Compiler, wéi och eng minimalistesch Approche, déi implizéiert nëmmen de minimale erfuerderleche Set vun Optiounen ze liwweren, déi an der POSIX Spezifizéierung definéiert sinn oder déi problematesch sinn ouni ze maachen. D'Programmer an der posixutils-rs Suite ginn ufanks als selbstänneg Code geliwwert, deen an anere Projete benotzt ka ginn.

De Moment sinn 55 Utilities, déi vum Projet entwéckelt goufen, entspriechen dem POSIX a sinn an der Testofdeckungsstadium, 22 Utilities bidden déi néideg Funktionalitéit (awer Testofdeckung ass nach net implementéiert), 20 sinn an der Entworfstadium, an d'Aarbechten un 44 Utilities hunn net nach ugefaangen. Ënnert den Utilitys mat implementéierter Funktionalitéit: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Ënnert den Utilities, Aarbecht op déi net ugefaang huet: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .

Ännerungen an der neier Verëffentlechung enthalen d'Additioun vun Implementatioune vun den awk, m4, ps, realpath, join, time, fuser a gencat Utilities, souwéi initial Ënnerstëtzung fir an Ëmfeld ze schaffen baséiert op der musl C Bibliothéik an der Versuergung vun der ftw Bibliothéik fir Staat-geschützt Verzeechnes Bam Traversal Course.

Zousätzlech kënne mir d'Ukënnegung vum rav1d Projet notéieren, deen en High-Performance Decoder fir den AV1 Videokodéierungsformat entwéckelt, geschriwwen an der Rust Sprooch. D'Entwécklung gëtt duerchgefouert andeems den Decodercode vun der dav1d Bibliothéik portéiert, déi duerch héich Leeschtung charakteriséiert ass, op Rust. De preparéierten Hafen ass voll kompatibel mat der dav1d Bibliothéik API. D'Wiel fir eng existent Bibliothéik ze portéieren anstatt eis eege Versioun ze schreiwen ass erkläert duerch de Wonsch e scho bewährten an getesten Decoder als Basis ze benotzen fir méiglech Kompatibilitéitsproblemer ze vermeiden an all d'Intricacies vun der Aarbecht mam AV1 Format ze berücksichtegen.

A senger aktueller Form ass d'preparéiert Ëmsetzung vu rav1d 6% hannert dav1d an der Leeschtung, awer an Zukunft, no der Optimisatioun vum Code, ass et geplangt fir Paritéit an der Leeschtung z'erreechen. Fir héich Leeschtung z'erreechen, gouf eng Approche benotzt, an där d'Basisfunktioune fir d'Dekodéierung vun primitiv Wäerter am Assembler a Form vun onséchere Blocken ëmgesat ginn (Versammlungscode vun dav1d gëtt benotzt), d'Donnéeën an déi no der Iwwerpréiwung mam Stream Parsing kritt ginn. Funktiounen, déi am Rust geschriwwe sinn (fréier Erfahrung bei der Identifikatioun vu Schwachstelle bei Videodekoderen weist datt d'Problemer haaptsächlech am High-Level Format Parsing Code entstoen, anstatt an den Low-Level Dateoperatiounen).

Source: opennet.ru

Setzt e Commentaire