إطار عمل C++ جديد لتطوير الويب يكتسب شعبية: نظرة عامة على الإمكانيات
يرتبط عالم تطوير الويب تقليديًا بـ Python وJavaScript وGo. ومع ذلك، في الأشهر الأخيرة، ظهر لاعب غير متوقع على الساحة — إطار عمل جديد للغة C++ باسم Drogon. يكتسب هذا المشروع نجومًا بسرعة على GitHub ويجذب انتباه المطورين الذين سئموا من اللغات المفسرة البطيئة في الأنظمة عالية التحميل.
Drogon هو إطار عمل ويب غير متزامن وعالي الأداء، مكتوب بلغة C++ الحديثة (C++17/20). على عكس العديد من الحلول، لا يتطلب تبعيات من libcurl أو OpenSSL أو Boost.Asio — فكل ما هو ضروري للعمل مع HTTP/HTTPS وWebSocket وقواعد البيانات مدمج بالفعل في النواة. وهذا يجعله خيارًا مثاليًا للخدمات المصغرة وبوابات API وتطبيقات الوقت الفعلي.
لماذا أصبح Drogon شائعًا؟
- السرعة. تظهر المقاييس أن Drogon يعالج ما يصل إلى 1.5 مليون طلب في الثانية على نواة واحدة — وهذا أسرع بعشر مرات من معظم أطر Node.js أو Python.
- البساطة. يلاحظ المطورون أن بناء جملة Drogon يشبه Express.js أو Flask، ولكن بقوة C++. لإنشاء REST API، يكفي كتابة بضعة أسطر من التعليمات البرمجية.
- دعم المعايير الحديثة. يستخدم الإطار بنشاط إمكانيات C++20: coroutines وranges وstd::format. وهذا يسمح بكتابة تعليمات برمجية آمنة وقابلة للقراءة دون إدارة يدوية للذاكرة.
- النظام البيئي. يوفر Drogon ORM لقواعد بيانات PostgreSQL وMySQL وSQLite، ومحرك قوالب مدمج (مشابه لـ Jinja2) ودعم WebSocket.
مثال على كود Drogon
إليك كيف يبدو الحد الأدنى من REST API على Drogon:
#include <drogon/drogon.h>using namespace drogon;
int main() { app().registerHandler("/hello", [](const HttpRequestPtr& req, std::function<void (const HttpResponsePtr&)> &&callback) { auto resp = HttpResponse::newHttpResponse(); resp->setBody("Hello from C++!"); callback(resp); }); app().addListener("0.0.0.0", 8080).run();}بعد التجميع (بأمر cmake واحد)، تحصل على ملف ثنائي بحجم حوالي 3 ميغابايت، يتم تشغيله فورًا ويستهلك فقط 5-10 ميغابايت من ذاكرة الوصول العشوائي عند البدء.
أين يُستخدم؟
يُستخدم Drogon بالفعل في الإنتاج من قبل شركات مثل Netflix (للخدمات المصغرة الداخلية)، وCloudflare (للحوسبة الطرفية)، وعدد من الشركات الناشئة في مجال التكنولوجيا المالية. السيناريوهات الرئيسية:
- واجهات برمجة التطبيقات عالية التحميل (البورصات، التحليلات، إنترنت الأشياء);
- الدردشات في الوقت الفعلي وبث البيانات;
- استبدال Node.js/Python في المشاريع التي يكون فيها زمن الوصول حرجًا;
- دمج خادم الويب في تطبيقات سطح المكتب (على سبيل المثال، للإدارة المحلية).
كيف تبدأ؟
التثبيت بسيط: على Ubuntu/Debian، يكفي تنفيذ sudo apt install libdrogon-dev، وعلى macOS — brew install drogon. بالنسبة لنظام Windows، تتوفر ملفات .dll جاهزة وتعليمات على الموقع الرسمي drogon.org.
على الرغم من أن C++ تعتبر تقليديًا صعبة لتطوير الويب، إلا أن Drogon يغير هذا التصور. إذا كنت