مقدمة عن Android Rust

يتيح نظام التشغيل Android إمكانية تطوير مكوّنات نظام التشغيل الأصلية بلغة Rust، وهي لغة حديثة لبرمجة الأنظمة توفّر ضمانات بشأن سلامة الذاكرة مع أداء مكافئ للغة C/C++. تستخدم لغة Rust مجموعة من عمليات التحقّق في وقت الترجمة تفرض مدة بقاء الكائن ومالكه، وعمليات تحقّق في وقت التشغيل تضمن إمكانية الوصول إلى الذاكرة بشكل صالح، ما يلغي الحاجة إلى برنامج لجمع البيانات غير الضرورية.

توفّر Rust مجموعة من ميزات اللغة الحديثة التي تتيح للمطوّرين أن يكونوا أكثر إنتاجية وثقة في الرمز البرمجي الخاص بهم:

  • البرمجة المتزامنة الآمنة: سهولة استخدامها تتيح للمستخدمين كتابة رمز برمجي فعال وآمن، ما أدى إلى ظهور شعار التزامن بلا خوف الخاص بلغة Rust.
  • نظام أنواع تعبيري: تساعد لغة Rust في منع أخطاء البرمجة المنطقية من خلال السماح بأنواع تعبيرية للغاية (مثل أغلفة Newtype، ومتغيرات التعداد مع المحتوى).
  • عمليات تحقّق أقوى في وقت الترجمة: يؤدي رصد المزيد من الأخطاء في وقت الترجمة إلى زيادة ثقة المطوّرين في أنّ الرمز البرمجي الذي تتم ترجمته بنجاح سيعمل على النحو المنشود.
  • إطار الاختبار المضمّن: توفّر Rust إطار اختبار مضمّنًا يمكن وضع اختبارات الوحدات فيه بجانب التنفيذ الذي تختبره، ما يسهّل تضمين اختبارات الوحدات.
  • فرض معالجة الأخطاء: يمكن للدوال التي تتضمّن أخطاء قابلة للاسترداد أن تعرض نوع النتيجة، والذي سيكون إما نوعًا ناجحًا أو نوعًا يتضمّن خطأ. يطلب المترجم من المستدعين التحقّق من نوع الخطأ في تعداد Result الذي يتم عرضه من استدعاء دالة والتعامل معه. يقلّل ذلك من احتمال حدوث أخطاء نتيجة حالات تعذُّر معالجتها.
  • الإعداد: يتطلّب Rust إعداد كل متغيّر إلى عنصر قانوني من نوعه قبل استخدامه، ما يمنع الإعداد غير المقصود إلى قيمة غير آمنة.
  • التعامل الأكثر أمانًا مع الأعداد الصحيحة: جميع عمليات التحويل من النوع الصحيح هي عمليات تحويل صريحة. لا يمكن للمطوّرين إجراء عملية تحويل الأنواع عن طريق الخطأ أثناء استدعاء دالة عند التعيين إلى متغير، أو عند محاولة إجراء عمليات حسابية باستخدام أنواع أخرى. يتم تلقائيًا تفعيل ميزة التحقّق من تجاوز سعة التخزين المؤقت في نظام التشغيل Android للغة Rust، ما يتطلّب أن تكون عمليات تجاوز سعة التخزين المؤقت صريحة.

لمزيد من المعلومات، يُرجى الاطّلاع على سلسلة مشاركات المدوّنة حول إتاحة Rust على Android: