
پروژه systemd اخیراً پشتیبانی از برنامههای نوشتهشده با زبان Rust را ادغام کرده است. این پشتیبانی اولیه در حال حاضر به اجزای برگای (Leaf Components) و باینریهای مستقل (Individual Binaries) محدود میشود و هدف بلندمدت، فراهم کردن امکان استفاده از Rust در اجزای ریشهای (Root Components) و اصلی (Core Components) systemd است.
جزئیات پشتیبانی اولیه و محدودیتها
کریستین براونر (Christian Brauner) و لنارت پوترینگ (Lennart Poettering)، توسعهدهندگان اصلی systemd که اخیراً شرکت Amutable را برای ارائه یکپارچگی قابل راستیآزمایی به بارهای کاری لینوکس تأسیس کردهاند، روز سهشنبه در یک پست وبلاگی این پشتیبانی اولیه را تشریح کردند.
بر اساس این توضیحات، پروژه systemd تا زمانی که پشتیبانی درجهیک از کتابخانههای اشتراکی (First-Class Shared Library Support) در Rust فراهم نشود، نمیتواند کد Rust را در اجزای اصلی (Core Components) خود بپذیرد. با این حال، چون کد مشترک همچنان فقط به زبان C باقی میماند، فعلاً امکان استفاده از Rust در باینریهای systemd بهعنوان اجزای برگای وجود دارد.
تصمیمهای کلیدی طراحی
از جمله تصمیمهای مهم برای مجاز دانستن Rust در systemd میتوان به موارد زیر اشاره کرد:
- دسترسی یکنواخت به APIهای هسته (Core APIs)
- رفتار یکنواخت (Uniform Behavior)
- سیستم ساخت یکنواخت (Uniform Build System)
- پشتیبانی از Rust بدون کتابخانه استاندارد (no-std Rust)
- اختیاری ماندن Rust (Rust Remaining Optional)
- رعایت الزامات طراحی مشابه
چشمانداز اجزای اصلی و همکاری با جامعه Rust
توسعهدهندگان اصلی systemd در پایان پست وبلاگی خود اعلام کردند که این پروژه همچنین تمایل دارد Rust را در اجزای اصلی خود ببیند و آماده تعامل با جامعه Rust برای تحقق این هدف است. به گفته آنها، پذیرش Rust حتی بهصورت محدود در باینریهای برگای میتواند نشانهای قوی به جامعه Rust باشد که اجزای اصلی پشته لینوکس در حال پذیرش این زبان هستند.
آنها همچنین اشاره کردند که رفع موانع بنیادین مانند نبود پشتیبانی درجهیک از کتابخانههای اشتراکی یا امکان تعامل با سیستم فایل عمدتاً از طریق توصیفگرهای فایل (File Descriptors) میتواند مسیر را برای حضور گستردهتر Rust هموار کند. علاقهمندان میتوانند جزئیات بیشتر را در وبلاگ Amutable مطالعه کنند.