عن المشروع
asupersync هو وقت تشغيل غير متزامن للغة Rust مصمم حول مبدأ أن الصحة يجب أن تكون بنيوية بدلاً من أن تُفرض في وقت التشغيل. يوفر أساساً لكتابة شيفرة Rust غير متزامنة تكون فيها خصائص الأمان مدمجة في نظام الأنواع ونموذج ملكية المهام.
ركائز التصميم الرئيسية:
- المهام المملوكة للمناطق: تُربط المهام بمناطق صريحة، مما يمنح المطورين تحكماً دقيقاً في أعمار المهام ويمنع التسريبات أو المراجع المعلقة في السياقات غير المتزامنة.
- بروتوكولات الإلغاء الصحيحة: تُعالج عملية الإلغاء عبر بروتوكولات تضمن التنظيف وتحرير الموارد واتساق الحالة حتى عند إجهاض المهام في منتصف التنفيذ. يتجنب ذلك مشكلة Rust غير المتزامنة الكلاسيكية حيث تترك المستقبلات الملغاة آثاراً جانبية في حالة غير معرّفة.
- التأثيرات المقيدة بالقدرات: تُقيَّد العمليات التي تنتج تأثيرات ملحوظة خلف رموز القدرات. فقط الشيفرة التي تمتلك القدرة المناسبة يمكنها تنفيذ التأثير، مما يجعل الآثار الجانبية صريحة وقابلة للتدقيق في وقت الترجمة.
- اختبار الإعادة الحتمي: يدعم وقت التشغيل الإعادة الحتمية، مما يسمح للاختبارات بتسجيل وإعادة تشغيل مسارات التنفيذ غير المتزامنة. هذا يجعل أخطاء التزامن غير الحتمية قابلة لإعادة الإنتاج والتصحيح.
تستهدف المكتبة المطورين الذين يبنون أنظمة تكون فيها الصحة غير المتزامنة بالغة الأهمية—مثل خدمات البنية التحتية والأنظمة المتزامنة والتطبيقات الحساسة للسلامة—حيث قد تسمح أوقات التشغيل غير المتزامنة التقليدية بانتهاكات صحة صامتة. وهي منشورة تحت رخصة MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.