البرمجة وتطوير البرمجيات

Cloudflare تتيح تشغيل تطبيقات Rust الأصلية على Workers عبر هدف Emscripten تجريبي

أعلنت Cloudflare دعماً تجريبياً لهدف Emscripten ‏wasm32-unknown-emscripten ضمن wasm-bindgen وRust Workers، ما يوسع توافق مكتبات Rust مع منصة Workers. ويشمل العمل تكامل Tokio ودعم TCP وUDP وUnix sockets، مع عرض عملي لتشغيل خادم Minecraft داخل Durable Object.

28 سبتمبر 2026
3 دقائق قراءة
5 قراءة
certi.news Editorial Team
Cloudflare تتيح تشغيل تطبيقات Rust الأصلية على Workers عبر هدف Emscripten تجريبي

أعلنت Cloudflare عن أول معاينة تجريبية عامة لدعم هدف الترجمة wasm32-unknown-emscripten ضمن سلسلة أدوات wasm-bindgen وبيئة Rust Workers. ويتيح هذا المسار بناء وتشغيل عدد أكبر من تطبيقات ومكتبات Rust الأصلية بصيغة WebAssembly على منصة Workers العالمية، بدلاً من الاقتصار على المكتبات المتوافقة مسبقاً مع نموذج WebAssembly التقليدي.

يمثل هذا العمل تكاملاً بين Emscripten، الذي يوفر طبقة لربط الشيفرة الأصلية ببيئة الويب ومحاكاة وظائف مثل نظام الملفات والمؤقتات والمقابس، وبين wasm-bindgen، الذي يتولى إنشاء bindings بين Rust وJavaScript. وبموجب التغييرات الجديدة، يستطيع كل من مترجم Rust ومترجم Emscripten استخدام طبقة bindings الخاصة بالآخر ضمن عملية البناء نفسها.

توسيع توافق مكتبات Rust

تقول Cloudflare إن الاختبارات الأولية أظهرت توافقاً أفضل مع مكتبات Rust، بما في ذلك مكتبات منخفضة المستوى. واحتاجت مكتبات مثل libc وsocket2 وMio إلى تعديلات محدودة لإضافة هدف Emscripten إلى شروط المنصة. أما المكتبة الأكثر تعقيداً فكانت Tokio، لأن Workers تعمل بخيط واحد ضمن حلقة أحداث JavaScript، في حين يعتمد Tokio تقليدياً على إيقاف الخيط أثناء انتظار عمليات الإدخال والإخراج.

لمعالجة هذا الاختلاف، تعمل Cloudflare على مسارين. الأول يستخدم WebAssembly JavaScript Promise Integration، الذي يسمح بتعليق مكدس WebAssembly وإعادة التحكم إلى حلقة أحداث JavaScript. ويتطلب ذلك إدارة دقيقة للسياق المحلي للخيط عند تعليق المكدسات واستئنافها. أما المسار الثاني فيقترح نمط LocalEventLoop لـTokio، حيث تُنفذ المهام الجاهزة عبر عملية drive() ويستبدل الانتظار بإشارة تنبيه إلى حلقة الأحداث المضيفة.

دعم المقابس وشبكات TCP

كان دعم الشبكات تحدياً إضافياً، إذ يعتمد Tokio على epoll_wait() عبر Mio، بينما كان Emscripten يوفر دعماً محدوداً لـpoll() وطبقة لمحاكاة WebSocket. لذلك ساهمت Cloudflare بأكثر من 40 طلب دمج في Emscripten لإضافة طبقة -sNODERAWSOCKETS، التي توفر دعماً لـepoll وTCP وUDP وUnix sockets عبر واجهة node:net.

وبما أن Workers توفر توافقاً مع واجهات Node.js، يمكن استخدام الجسر نفسه داخل المنصة، من دون إضافة واجهات مخصصة منفصلة بين Emscripten وCloudflare. وتظل هذه الإمكانات تجريبية، كما أن بعض ترقيعات Tokio ما زالت قيد المراجعة قبل دمجها نهائياً في المشروع.

اختبار عملي عبر خادم Minecraft

لاختبار مدى التوافق، شغّل مهندس Cloudflare Dan Lapid خادم Minecraft المكتوب بلغة Rust، والمعروف باسم Pumpkin، داخل Durable Object. وبما أن Durable Object يعمل بخيط واحد، حُولت حلقات اللعبة وجدولة المناطق ومهام Rayon إلى مهام تعاونية ضمن حلقة Tokio بدلاً من الاعتماد على خيوط نظام تشغيل مستقلة.

استخدم الخادم نظام الملفات عبر واجهات Node.js، مع تخزين الملفات في SQLite الخاص بـDurable Object من خلال مكتبة worker-fs-mount. كما مرّت اتصالات اللاعبين عبر TCP ingress ثم إلى خادم TCP داخل الكائن. ووفق Cloudflare، سمح ذلك بتشغيل خادم Minecraft متعدد اللاعبين مع حفظ الحالة وإعادة تشغيل الكائن من العالم المخزن.

لماذا يهم هذا التطور؟

القيمة العملية للتغيير لا تكمن في إضافة هدف ترجمة جديد فحسب، بل في تقليل عدد المكتبات والتطبيقات التي تحتاج إلى إعادة كتابة كي تعمل على Workers. إلا أن Cloudflare تصف الدعم بأنه تجريبي وقبل الإصدار، كما أن تصميم Tokio الجديد، ودعم JSPI، وبعض تكاملات Emscripten ما زالت قيد التطوير والمراجعة upstream. لذلك يفتح المسار الباب أمام تجارب تشغيل تطبيقات Rust الأصلية، لكنه لا يثبت بعد أنه بديل مكتمل ومستقر لكل بيئات التشغيل التقليدية.

مصدر الخبر
كيف أعددنا هذا الخبر؟

اعتمد الخبر على المصدر الأصلي الموضح أعلاه. قد نستخدم أدوات آلية للمساعدة في الاستخراج والتصنيف والصياغة، لكن النشر يخضع لقواعد تمنع المحتوى المكرر والقصير أو الروتيني منخفض القيمة. اقرأ سياستنا التحريرية.

c
كاتب المقال

certi.news Editorial Team

certi.news Editorial Team

The certi.news editorial team monitors technical sources and reconstructs news, verifying facts and context prior to publication.

من نفس التصنيف

مقالات قد تهمك

عرض كل الأخبار