Rustda yazılmış POSIX utilitləri və AV1 dekoderləri dəsti

POSIX standartında qeyd olunan və onun tələblərinə cavab verən (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m0.2.1, sed və s.). İnkişaf zamanı, mümkün olduqda, mövcud sandıq paketlərindən istifadə olunur. Posixutils-rs kodu MIT lisenziyası altında paylanır.

Layihə ilk növbədə POSIX.2024 spesifikasiyasının tələblərinə uyğunluğa nail olmağa yönəlib və funksionallığı müəlliflər tərəfindən əsassız olaraq şişirdilmiş kimi qəbul edilən GNU utilitləri ilə uyğunluğu təmin etməyi planlaşdırmır. Bununla belə, posixutils-rs mövcud skriptlərdə tapılan ən populyar qabaqcıl GNU utilit variantlarını həyata keçirməyi planlaşdırır.

Rust-da GNU Coreutils tətbiqini inkişaf etdirən uutils layihəsindən fərqlər, digər şeylərlə yanaşı, vi, awk, bc, m4, cron və c99 kompilyatoru kimi POSIX sistem komponentlərinin yaradılması da daxil olmaqla, daha geniş kommunal proqramları əhatə edir. eləcə də POSIX spesifikasiyasında müəyyən edilmiş və ya onsuz etmək problemli olan minimum tələb olunan variantlar dəstinin təmin edilməsini nəzərdə tutan minimalist yanaşma. Posixutils-rs paketindəki proqramlar ilkin olaraq digər layihələrdə istifadə oluna bilən müstəqil kod kimi təqdim olunur.

Hazırda layihə tərəfindən hazırlanmış 55 kommunal POSIX-ə uyğundur və sınaq əhatə dairəsindədir, 22 kommunal lazımi funksionallığı təmin edir (lakin sınaq əhatəsi hələ həyata keçirilməyib), 20-si layihə mərhələsindədir, 44 kommunal xidmət üzrə isə işlər hələ də davam etdirilməyib. hələ başlamışdır. Tətbiq edilmiş funksionallığı olan utilitlər arasında: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Üzərində işə başlamamış kommunal proqramlar arasında: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .

Yeni buraxılışda edilən dəyişikliklərə awk, m4, ps, realpath, join, time, fuser və gencat utilitlərinin tətbiqlərinin əlavə edilməsi, həmçinin musl C kitabxanasına əsaslanan mühitlərdə işləmək üçün ilkin dəstək və ftw təmin edilməsi daxildir. dövlət tərəfindən qorunan kataloq ağacının keçid yarışı üçün kitabxana.

Bundan əlavə, Rust dilində yazılmış AV1 video kodlaşdırma formatı üçün yüksək performanslı dekoder hazırlayan rav1d layihəsinin elanını qeyd edə bilərik. İnkişaf yüksək performansı ilə seçilən dav1d kitabxanasının dekoder kodunun Rust-a daşınması ilə həyata keçirilir. Hazırlanmış port dav1d kitabxana API ilə tam uyğun gəlir. Öz versiyamızı yazmaq əvəzinə, mövcud kitabxananı daşımaq seçimi, mümkün uyğunluq problemlərindən qaçmaq və AV1 formatı ilə işləməyin bütün incəliklərini nəzərə almaq üçün artıq sübut edilmiş və sınaqdan keçirilmiş dekoderdən əsas kimi istifadə etmək istəyi ilə izah olunur.

Hazırkı formada rav1d-nin hazırlanmış tətbiqi performans baxımından dav6d-dən 1% geri qalır, lakin gələcəkdə kodu optimallaşdırdıqdan sonra performansda paritetə ​​nail olmaq planlaşdırılır. Yüksək performansa nail olmaq üçün, primitiv dəyərlərin dekodlanması üçün əsas funksiyaların assemblerdə təhlükəli bloklar şəklində həyata keçirildiyi bir yanaşma istifadə edilmişdir (dav1d-dən montaj kodu istifadə olunur), məlumat axını təhlili ilə yoxlanıldıqdan sonra daxil edilir. Rust-da yazılmış funksiyalar (video dekoderlərdə zəifliklərin müəyyən edilməsi üzrə keçmiş təcrübə göstərir ki, problemlər əsasən aşağı səviyyəli məlumat əməliyyatlarında deyil, yüksək səviyyəli format analiz kodunda yaranır).

Mənbə: opennet.ru

Добавить комментарий