C++ تدعم رسميًا منصة جديدة: ماذا يعني ذلك للمطورين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

C++ تدعم الآن WASI رسميًا: مرحلة جديدة في التطوير عبر المنصات



أعلنت لجنة توحيد معايير لغة C++ (ISO/IEC JTC1/SC22/WG21) بالتعاون مع مجموعة مطوري LLVM ومشروع WebAssembly عن حدث طال انتظاره: لغة C++ حصلت على دعم رسمي وموثق لمنصة WebAssembly System Interface (WASI). وهذا يعني أنه يمكن للمطورين الآن كتابة كود نظامي بلغة C++ يعمل ليس فقط على أنظمة التشغيل التقليدية (Windows, Linux, macOS)، ولكن أيضًا في بيئة WebAssembly خارج المتصفح — على الخوادم، وفي أجهزة إنترنت الأشياء، وأنظمة الحوسبة الطرفية السحابية.



ما هو WASI ولماذا هو مهم لـ C++؟



WASI (WebAssembly System Interface) هي واجهة نظام موحدة توفر لوحدات WebAssembly إمكانية الوصول إلى نظام الملفات، ومآخذ الشبكة، والوقت، وموارد نظام التشغيل الأخرى. سابقًا، كان بإمكان C++ التجميع إلى WebAssembly، لكن التفاعل مع العالم الخارجي كان محدودًا ببيئة المتصفح. الآن، مع الدعم الرسمي لـ WASI، تحصل C++ على بيئة معزولة كاملة لتنفيذ آمن للكود خارج المتصفح.



  • الأمان: يتم تنفيذ وحدات C++ في بيئة رملية مع التحكم في الوصول إلى الموارد — مثالي للخدمات متعددة المستخدمين.
  • قابلية النقل: ملف ثنائي واحد .wasm يعمل على أي نظام تشغيل يحتوي على بيئة تشغيل WASI (Wasmer, Wasmtime, WAMR).
  • الأداء: تجميع C++ مباشرة إلى كود WebAssembly الأصلي (عبر Clang/LLVM) يعطي سرعة تنفيذ شبه أصلية، دون تكاليف إضافية للآلة الافتراضية.


ما الذي تغير في بيئة C++؟



الابتكار الرئيسي هو ظهور دليل رسمي لنقل كود C++ إلى WASI وإدراج دعم WASI في المستودع الرئيسي لـ LLVM. الآن، يمكن تجميع أي مشروع بلغة C++ لـ WASI باستخدام علامة مترجم بسيطة:



clang++ --target=wasm32-wasi -O3 my_program.cpp -o my_program.wasm



بالإضافة إلى ذلك، تم تحديث المكتبات القياسية لـ C++ (libc++, libc++abi) للعمل بشكل صحيح مع استدعاءات نظام WASI. لم يعد المطورون بحاجة إلى تكوين الربط مع المكتبات الخارجية يدويًا — كل شيء يعمل «فورًا».



أين يتم تطبيق هذا بالفعل؟



  • الحوسبة السحابية: تشغيل الخدمات المصغرة بلغة C++ في حاويات WASI المعزولة (مثل Fastly Compute@Edge أو Cloudflare Workers مع دعم WASI).
  • الأنظمة المدمجة: استخدام WASI لتحديث البرامج الثابتة لأجهزة إنترنت الأشياء المكتوبة بلغة C++ بشكل آمن.
  • الحسابات العلمية: نقل وحدات C++ المكثفة حسابيًا (مكتبات الجبر الخطي، المحاكاة) إلى WASI للتشغيل عبر المنصات دون إعادة تجميع.


ما هي الخطوات التالية؟



في الخطط القريبة — الدعم الكامل لتعدد الخيوط في C++ ضمن WASI (حاليًا متاح فقط نموذج أحادي الخيط) والتكامل مع coroutines C++20/23. يعمل المجتمع بالفعل على تكييف المكتبات الشائعة (Boost, Qt, OpenCV) للتجميع تحت WASI. تابع التحديثات على الموقع الرسمي wasi.dev وفي مستودع LLVM.



إذا كنت تكتب بلغة C++ وتريد

المكتبات الموصى بها