POSIX افاديت جو هڪ سيٽ ۽ هڪ AV1 ڊيڪوڊر جو لکيل آهي Rust ۾

posixutils-rs 0.2.1 پروجيڪٽ جو رليز شايع ڪيو ويو آهي، جنهن جو مقصد زنگ ٻوليءَ ۾ ترقي ڪرڻ آهي ڪمانڊ لائن يوٽيلٽيز جو هڪ مجموعو جيڪو POSIX معيار ۾ ذڪر ڪيل آهي ۽ ان جي ضرورتن کي پورو ڪرڻ (cp, mv, awk, make, vi, find, ترتيب، wc، xargs، sh، m4، sed، وغيره). ترقي دوران، جڏهن به ممڪن هجي، موجوده ڪرٽ پيڪيجز استعمال ڪيا ويندا آهن. posixutils-rs ڪوڊ MIT لائسنس تحت ورهايو ويو آهي.

پروجيڪٽ بنيادي طور تي POSIX.2024 جي وضاحتن جي ضرورتن جي تعميل کي حاصل ڪرڻ تي مرکوز آهي ۽ GNU يوٽيلٽيز سان مطابقت مهيا ڪرڻ جي رٿابندي نه ڪندو آهي، جنهن جي ڪارڪردگيءَ کي مصنفن طرفان غير معقول طور تي ڦٽيل سمجهيو ويندو آهي. جڏهن ته، posixutils-rs موجوده اسڪرپٽ ۾ مليا سڀ کان وڌيڪ ترقي يافته GNU يوٽيلٽي آپشنز کي لاڳو ڪرڻ جو منصوبو.

Uutils پروجيڪٽ کان اختلاف، جيڪو ڊولپ ڪري ٿو GNU Coreutils تي عمل درآمد Rust ۾، ان ۾ يوٽيلٽيز جو وسيع دائرو شامل آهي، جنهن ۾ ٻين شين جي وچ ۾، اهڙين POSIX سسٽم جي اجزاء جي تخليق جهڙوڪ vi، awk، bc، m4، cron ۽ c99 ڪمپيلر، انهي سان گڏ هڪ minimalistic طريقو، جنهن جو مطلب آهي صرف مهيا ڪرڻ جو گهٽ ۾ گهٽ گهربل سيٽ اپشنز جو POSIX وضاحتن ۾ بيان ڪيل آهي يا جن کان سواءِ ڪرڻ مشڪل آهي. posixutils-rs سوٽ ۾ پروگرامن کي شروعاتي طور تي خود مختيار ڪوڊ طور فراهم ڪيو ويو آھي جيڪو ٻين منصوبن ۾ استعمال ڪري سگھجي ٿو.

في الحال، پروجيڪٽ پاران تيار ڪيل 55 يوٽيلٽيز POSIX جي تعميل ۾ آهن ۽ ٽيسٽ ڪوريج اسٽيج تي آهن، 22 يوٽيلٽيز ضروري ڪارڪردگي مهيا ڪن ٿيون (پر ٽيسٽ ڪوريج اڃا تائين لاڳو نه ڪئي وئي آهي)، 20 ڊرافٽ اسٽيج تي آهن، ۽ 44 يوٽيلٽيز تي ڪم نه ڪيو ويو آهي. اڃا شروع ٿيو. افاديت جي وچ ۾ لاڳو ٿيل ڪارڪردگي سان: awk، basename، bc، cp، cut، chown، date، diff، file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. افاديت جي وچ ۾، ڪم جنهن تي شروع نه ڪيو ويو آهي: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .

نئين رليز ۾ تبديلين ۾ شامل آهن awk، m4، ps، realpath، join، time، fuser ۽ gencat يوٽيلٽيز جي عملن جي اضافي سان، گڏوگڏ ماحول ۾ ڪم ڪرڻ لاءِ ابتدائي مدد musl C لائبريري جي بنياد تي ۽ ftw جي روزي. لائبريري رياست طرفان محفوظ ڪيل ڊاريڪٽري ٽري ٽرورسل ريس لاءِ.

اضافي طور تي، اسان rav1d پروجيڪٽ جي اعلان کي نوٽ ڪري سگهون ٿا، جيڪو AV1 ويڊيو ڪوڊنگ فارميٽ لاء هڪ اعلي ڪارڪردگي ڊيڪوڊر ٺاهي رهيو آهي، جيڪو مورچا ٻولي ۾ لکيل آهي. ڊولپمينٽ ڊيڪوڊر ڪوڊ پورٽنگ ذريعي ڪيو ويندو آهي dav1d لائبريري، جيڪو اعلي ڪارڪردگي سان منسوب ڪيو ويو آهي، زنگ ڏانهن. تيار ڪيل پورٽ مڪمل طور تي dav1d لائبريري API سان مطابقت رکي ٿو. موجوده لائبريري کي پورٽ ڪرڻ جو انتخاب اسان جو پنهنجو نسخو لکڻ جي بدران اڳ ۾ ئي ثابت ٿيل ۽ آزمائشي ڊيڪوڊر کي استعمال ڪرڻ جي خواهش سان بيان ڪيو ويو آهي بنيادي طور تي ممڪن مطابقت جي مسئلن کان بچڻ ۽ AV1 فارميٽ سان ڪم ڪرڻ جي سڀني پيچيدگين کي حساب ۾ رکڻ لاءِ.

ان جي موجوده شڪل ۾، rav1d جي تيار ڪيل عملدرآمد ڪارڪردگي ۾ dav6d کان 1٪ پوئتي آهي، پر مستقبل ۾، ڪوڊ کي بهتر ڪرڻ کان پوء، ڪارڪردگي ۾ برابري حاصل ڪرڻ جي منصوبابندي ڪئي وئي آهي. اعلي ڪارڪردگي حاصل ڪرڻ لاء، هڪ طريقو استعمال ڪيو ويو جنهن ۾ بنيادي قدرن کي ڊيڪوڊنگ ڪرڻ لاء بنيادي ڪم غير محفوظ بلاڪ جي صورت ۾ اسمبلر ۾ لاڳو ڪيا ويا آهن (DAv1d کان اسيمبليء جو ڪوڊ استعمال ڪيو ويندو آهي)، ڊيٽا جنهن ۾ حاصل ڪيو ويندو آهي وهڪرو پارسنگ سان چيڪ ڪرڻ کان پوء. Rust ۾ لکيل افعال (ويڊيو ڊيڪوڊرز ۾ ڪمزورين جي نشاندهي ڪرڻ ۾ اڳوڻو تجربو ڏيکاري ٿو ته مسئلا بنيادي طور تي اعلي سطحي فارميٽ پارسنگ ڪوڊ ۾ پيدا ٿين ٿا، بجاءِ گهٽ-سطح واري ڊيٽا جي عملن ۾).

جو ذريعو: opennet.ru

تبصرو شامل ڪريو