
Systemd يضيف دعم Rust
يشمل تطوير Systemd 263 الآن دعم Rust للمكونات الطرفية الجديدة، المبنية باستخدام Meson وبدون مكتبة المعايير، بينما تبقى شفرة C الحالية في مكانها، ولا يُكتب بـ Rust ما تعتمد عليه مكونات أخرى.
يكتسب Systemd 263 دعم Rust بعد أن أعلن المطور Christian Brauner على Mastodon أن ميزته الجديدة قد دُمجت. يتيح هذا التغيير كتابة المكونات الطرفية الجديدة بـ Rust، بينما تبقى شفرة C الحالية في مكانها ولا يُكتب بـ Rust أي شيء تعتمد عليه مكونات أخرى.
ما الذي تغيّر
قُسّمت الجهود السابقة الآن إلى خمسة أجزاء منفصلة. يحتوي الجزء 1 على keyring-util وvoa-util، الموصوفين كمساعدين لتسجيل الشهادات في حلقات مفاتيح النواة. يضيف الجزء 2 برامج دعم مكتوبة بـ Rust. الأجزاء المتبقية تربط فقط الترويسات (headers) التي تستخدمها شفرة Rust، وتغلّف مساعدي libsystemd-shared التي يحتاجها systemd-keyring-setup، وتضيف systemd-keyring-setup.
قواعد البناء
يُستخدم Rust فقط للمكونات الطرفية الجديدة. لا تُحوَّل شفرة C الحالية، ولا يُكتب بـ Rust أي شيء تعتمد عليه مكونات أخرى. لا يوجد Cargo؛ يُبنى كل شيء باستخدام Meson، الذي يستخدمه systemd بالفعل. يُستخدم Meson أيضاً على نطاق واسع في مشروع GNOME ومكتبة Mesa 3D للرسومات، وهو مكتوب بـ Python، ويستخدم Ninja. صُمّم Ninja لبناء Chrome بشكل أسرع، ويُستخدم أيضاً لـ Android. يجب ألا تستخدم شفرة Rust مكتبة المعايير (standard library)، وهو شرط يُوصف بأنه طبيعي في برمجة Rust المضمّنة.
المتطلبات والحدود
يتطلب المشروع Rust 1.85 أو أحدث، وbindgen 0.71.1 أو أحدث، وMeson 1.4.0 أو أحدث. أُصدر Rust 1.85 في فبراير 2025، وظهر Rust 1.99.1 في وقت سابق من هذا الشهر، وصدر bindgen 0.71.1 في ديسمبر 2024، وصدر Meson 1.4.0 في مارس 2024. هذه إصدارات قديمة نسبياً، وإصدار Meson هو الذي يُضمَّن في Debian 13. قال Brauner إن الفريق كان يود دعم Rust في جوهر systemd، لكن دعم Rust للمكتبات الديناميكية ليس جاهزاً تماماً بعد. كتابة وحدات systemd بـ Rust منفصلة عن استدعاء systemd من شفرة Rust، وأدوات مثل حزمة systemd (crate) موجودة منذ 2015.
المصادر: The Register
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.