به روز رسانی به GNU Coreutils، بازنویسی شده در Rust

انتشار جعبه ابزار uutils coreutils 0.0.12 ارائه شده است که در آن یک آنالوگ از بسته Coreutils گنو که به زبان Rust بازنویسی شده است در حال توسعه است. Coreutils با بیش از صد برنامه کاربردی از جمله sort، cat، chmod، chown، chroot، cp، date، dd، echo، hostname، id، ln و ls عرضه می‌شود. در همان زمان، بسته uutils findutils 0.3.0 با پیاده سازی در Rust از ابزارهای مجموعه GNU Findutils (یافتن، مکان یابی، به روز رسانی b و xargs) منتشر شد.

دلیل ایجاد پروژه و استفاده از زبان Rust تمایل به ایجاد یک پیاده‌سازی جایگزین بین پلتفرمی از Coreutils و Findutils است که می‌تواند روی پلتفرم‌های Windows، Redox و Fuchsia و غیره اجرا شود. تفاوت مهم دیگر بین uutils این است که به جای مجوز کپی لفت GPL تحت مجوز مجاز MIT توزیع می شود.

در حال حاضر، پیاده سازی 88 ابزار به طور کامل با گنو کوروتیلز برابر شده است. نقص های فردی در 18 ابزار شامل cp، dd، date، df، install، ls، more، sort، split، tail و test ذکر شده است. فقط ابزار stty اجرا نشده باقی می ماند. هنگام گذراندن مجموعه آزمایشی از پروژه GNU Coreutils، 214 تست با موفقیت اجرا می شوند، اما آنالوگ Rust هنوز 313 تست را پشت سر نمی گذارد. در همان زمان، شدت توسعه پروژه به طور قابل توجهی افزایش یافته است - 400-470 وصله در ماه از 20-50 توسعه دهنده به جای 30-60 از 3-8 توسعه دهنده در سال گذشته اضافه می شود.

به روز رسانی به GNU Coreutils، بازنویسی شده در Rust

در میان آخرین دستاوردها، بهینه سازی عملکرد ذکر شده است - در وضعیت فعلی، بسیاری از ابزارها، مانند head و cut، به طور قابل توجهی از نظر عملکرد برتر از گزینه های GNU Coreutils هستند. پوشش مجموعه آزمایشی از 55٪ به 75٪ از کل کد افزایش یافته است (80٪ هدف کافی است). کد به منظور ساده سازی تعمیر و نگهداری بازسازی شده است، به عنوان مثال، مدیریت خطا در برنامه های مختلف یکپارچه شده است، و کد برای کار با حقوق دسترسی به chgrp و chown ترکیب شده است. تغییرات زیادی برای بهبود سازگاری با گنو کوروتیلز اضافه شده است.

برنامه‌های آینده شامل پیاده‌سازی ابزار stty، ادامه کار برای بهبود سازگاری با گنو کوروتیلز، افزودن بهینه‌سازی‌هایی برای کاهش اندازه فایل‌های اجرایی، و همچنین ادامه آزمایش‌ها در استفاده از ابزارهای uutils در دبیان و اوبونتو به جای گنو کوروتیلز و گنو است. Findutils (یکی از توسعه دهندگان اصلی uutils قبلاً روی پروژه ای برای ساخت Debian GNU/Linux با استفاده از کامپایلر Clang کار می کرد). علاوه بر این، آماده سازی بسته uutils-coreutils برای macOS، آزمایش های جایگزینی GNU Coreutils با uutils coreutils در NixOS، قصد استفاده از uutils coreutils به طور پیش فرض در توزیع Apertis، و انطباق uutils تنظیم شده برای سیستم عامل Redox ذکر شده است.

منبع: opennet.ru

اضافه کردن نظر