Die vrystelling van die posixutils-rs 0.2.1-projek is gepubliseer, wat daarop gemik is om in die Rust-taal 'n versameling opdragreëlhulpmiddels te ontwikkel wat in die POSIX-standaard genoem word en aan die vereistes daarvan voldoen (cp, mv, awk, make, vi, find, sorteer, wc, xargs, sh, m4, sed, ens.). Tydens ontwikkeling, waar moontlik, word bestaande kratpakkette gebruik. Die posixutils-rs-kode word onder die MIT-lisensie versprei.
Die projek is hoofsaaklik daarop gefokus om voldoening aan die vereistes van die POSIX.2024-spesifikasie te bereik en beplan nie om versoenbaarheid met GNU-nutsprogramme te verskaf nie, waarvan die funksionaliteit deur die skrywers as onredelik opgeblase beskou word. Posixutils-rs beplan egter om die gewildste gevorderde GNU-nutsopsies wat in bestaande skrifte voorkom, te implementeer.
Verskille van die uutils-projek, wat die GNU Coreutils-implementering in Rust ontwikkel, sluit 'n breër omvang van nutsdienste in, insluitend, onder andere, die skepping van sulke POSIX-stelselkomponente soos vi, awk, bc, m4, cron en die c99-samesteller, sowel as 'n minimalistiese benadering, wat impliseer om slegs die minimum vereiste stel opsies te verskaf wat in die POSIX-spesifikasie gedefinieer is of wat problematies is om daarsonder te klaarkom. Die programme in die posixutils-rs suite word aanvanklik as selfstandige kode verskaf wat in ander projekte gebruik kan word.
Tans voldoen 55 nutsprogramme wat deur die projek ontwikkel is aan POSIX en is in die toetsdekkingstadium, 22 nutsdienste verskaf die nodige funksionaliteit (maar toetsdekking is nog nie geïmplementeer nie), 20 is in die konsepstadium, en werk aan 44 nutsdienste het nie nog begin. Onder die nutsprogramme met geïmplementeerde funksionaliteit: awk, basisnaam, bc, cp, sny, chown, datum, verskil, lêer, vind, grep, ls, nice, ps, sorteer, snare, stert, tr, tty, wc, uniq. Onder die nutsprogramme, werk waaraan nog nie begin het nie: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .
Veranderinge in die nuwe vrystelling sluit in die byvoeging van implementerings van die awk, m4, ps, realpath, join, time, fuser en gencat utilities, sowel as aanvanklike ondersteuning vir werk in omgewings gebaseer op die musl C biblioteek en die voorsiening van die ftw biblioteek vir staat-beskermde gids boom deurkruis ras.
Daarbenewens kan ons kennis neem van die aankondiging van die rav1d-projek, wat besig is om 'n hoëprestasie-dekodeerder vir die AV1-videokoderingsformaat te ontwikkel, geskryf in die Rust-taal. Ontwikkeling word uitgevoer deur die dekodeerderkode van die dav1d-biblioteek, wat gekenmerk word deur hoë werkverrigting, na Rust oor te dra. Die voorbereide poort is ten volle versoenbaar met die dav1d-biblioteek-API. Die keuse om 'n bestaande biblioteek oor te dra in plaas van om ons eie weergawe te skryf, word verduidelik deur die begeerte om 'n reeds bewese en getoetsde dekodeerder as basis te gebruik om moontlike versoenbaarheidsprobleme te vermy en al die ingewikkeldhede van die werk met die AV1-formaat in ag te neem.
In sy huidige vorm is die voorbereide implementering van rav1d 6% agter dav1d in prestasie, maar in die toekoms, na die optimalisering van die kode, word beplan om gelykheid in prestasie te bereik. Om hoë werkverrigting te bereik, is 'n benadering gebruik waarin die basiese funksies vir die dekodering van primitiewe waardes in samesteller geïmplementeer word in die vorm van onveilige blokke (samestellingskode van dav1d word gebruik), die data waarin ontvang word nadat dit met stroomontleding gekontroleer is funksies geskryf in Rust (vorige ondervinding in die identifisering van kwesbaarhede in video-dekodeerders toon dat probleme hoofsaaklik ontstaan in hoëvlak-formaat-ontledingskode, eerder as in laevlak-data-operasies).
Bron: opennet.ru
