توفّر منصة Android إمكانية تطوير مكوّنات نظام التشغيل الأصلية بلغة Rust، وهي لغة حديثة لبرمجة الأنظمة توفّر ضمانات أمان الذاكرة مع أداء مماثل لـ C/C++. وتستخدم Rust مجموعة من عمليات التحقّق في وقت الترجمة التي تفرض مدة صلاحية العنصر وملكيته، وعمليات التحقّق في وقت التشغيل التي تضمن عمليات وصول صالحة إلى الذاكرة، ما يزيل الحاجة إلى أداة جمع المهملات.
توفّر Rust مجموعة من ميزات اللغة الحديثة التي تسمح للمطوّرين بالعمل بفعالية أكبر وثقة أكبر في رموزهم البرمجية:
- البرمجة المتزامنة الآمنة: إنّ سهولة استخدام هذه الميزة تتيح للمستخدمين كتابة رموز فعّالة وخالية من سلاسل المحادثات، ما أدى إلى ظهور شعار Rust Fearless Concurrency.
- نظام أنواع تعبيري: تساعد Rust في منع أخطاء البرمجة المنطقية من خلال السماح بأنواع تعبيرية للغاية (مثل أدوات تغليف Newtype وأنواع ملف السجلّ التي تحتوي على محتويات).
- عمليات تحقّق أقوى في وقت الترجمة: إنّ العثور على المزيد من الأخطاء في وقت الترجمة يزيد من ثقة المطوّر بأنّ الرمز يعمل على النحو المقصود عند تجميعه بنجاح.
- إطار الاختبار المدمَج: يوفّر Rust إطار عمل اختبارًا مضمَّنًا يمكن فيه وضع اختبارات الوحدات جنبًا إلى جنب مع عملية التنفيذ التي يختبرها، ما يسهِّل تضمين اختبار الوحدات.
- فرض معالجة الأخطاء: يمكن للوظائف التي تتضمّن أخطاء قابلة للاسترداد أن تُعرِض نوع النتيجة، والذي سيكون إما صيغًا للنجاح أو صيغًا للأخطاء. يتطلب برنامج التجميع من المتصلين البحث عن صيغة الخطأ لتعداد
Result
الذي تم إرجاعه من استدعاء دالة والتعامل معه. ويؤدي ذلك إلى تقليل احتمالية حدوث أخطاء نتيجةً للتعذُّرات غير المحمولة. - الإعداد - يتطلب Rust إعداد كل متغير إلى عضو قانوني من نوعه قبل استخدامه، ما يمنع الإعداد غير المقصود إلى قيمة غير آمنة.
- التعامل بشكل أكثر أمانًا مع الأعداد الصحيحة: جميع الإحالات الناجحة من نوع الأعداد الصحيحة هي بث واضح. لا يمكن للمطوّرين إجراء عملية تحويل عن طريق الخطأ أثناء استدعاء دالة عند إسناد قيمة لمتغيّر، أو عند محاولة إجراء عمليات حسابية بأنواع أخرى. يكون التحقّق من overflow مفعّلاً تلقائيًا في Android لبرنامج Rust، ما يتطلّب أن تكون عمليات overflow صريحة.
لمزيد من المعلومات، يُرجى الاطّلاع على سلسلة المشاركات في المدونة حول إتاحة Rust على Android:
- Rust في نظام Android الأساسي
تقدّم هذه الصفحة نظرة عامة حول سبب تقديم فريق Android لـ Rust كلغة جديدة في النظام الأساسي. - دمج Rust في مشروع Android Open Source Project
يتناول هذا المقال كيفية توفير دعم Rust لنظام الإنشاء، وسبب اتخاذ قرارات تصميم معيّنة. - إمكانية التشغيل التفاعلي Rust/C++ في نظام Android الأساسي
يناقش هذا القسم نهج إمكانية التشغيل التفاعلي Rust/C++ في Android.