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

جعبه ابزار uutils coreutils 0.0.12 منتشر شده است. این جعبه ابزار معادل Rust از بسته GNU Coreutils را توسعه می‌دهد. Coreutils شامل بیش از ۱۰۰ ابزار کاربردی از جمله sort، cat، chmod، chown، chroot، cp، date، dd، echo، hostname، id، ln و ls است. همزمان، بسته uutils findutils 0.3.0 نیز منتشر شده است که پیاده‌سازی Rust از ابزارهای GNU Findutils (find، locate، updatedb و xargs) را ارائه می‌دهد.

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

در حال حاضر، پیاده‌سازی ۸۸ ابزار به طور کامل به‌روزرسانی شده است تا با GNU Coreutils مطابقت داشته باشد. اشکالات منفرد در ۱۸ ابزار، از جمله cp، dd، date، df، install، ls، more، sort، split، tail و test گزارش شده است. فقط ابزار stty پیاده‌سازی نشده باقی مانده است. در حالی که ۲۱۴ آزمایش از مجموعه آزمایش GNU Coreutils با موفقیت عبور می‌کند، معادل Rust هنوز در ۳۱۳ آزمایش رد می‌شود. در همین حال، شدت توسعه پروژه به طور قابل توجهی افزایش یافته است - ۴۰۰ تا ۴۷۰ وصله در ماه توسط ۲۰ تا ۵۰ توسعه‌دهنده اضافه می‌شود، که نسبت به ۳۰ تا ۶۰ وصله توسط ۳ تا ۸ توسعه‌دهنده در سال گذشته افزایش یافته است.

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

دستاوردهای اخیر شامل بهینه‌سازی عملکرد است - در وضعیت فعلی خود، بسیاری از ابزارها، مانند head و cut، به طور قابل توجهی از همتایان GNU Coreutils خود بهتر عمل می‌کنند. پوشش مجموعه تست از ۵۵٪ به ۷۵٪ از کل پایگاه کد گسترش یافته است (۸۰٪ هدف کافی است). اصلاح کد برای ساده‌سازی نگهداری انجام شده است. به عنوان مثال، مدیریت خطا در برنامه‌ها یکپارچه شده است و کد حقوق دسترسی در chgrp و chown ادغام شده است. تغییرات متعددی برای بهبود سازگاری با GNU Coreutils اضافه شده است.

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

منبع: opennet.ru

خرید هاست قابل اعتماد برای سایت های دارای حفاظت DDoS، سرورهای VPS VDS 🔥 خرید هاستینگ معتبر با محافظت در برابر حملات DDoS، سرورهای VPS و VDS | ProHoster