نشر مشروع NGINX مجموعة أدوات لتطوير الوحدات النمطية بلغة Rust

قدم مطورو مشروع NGINX مجموعة أدوات ngx-rust، والتي تتيح لك إنشاء وحدات نمطية لخادم NGINX http والوكيل متعدد البروتوكولات بلغة برمجة Rust. يتم توزيع كود ngx-rust بموجب ترخيص Apache 2.0 وهو حاليًا في مرحلة تجريبية.

في البداية، تم تطوير مجموعة الأدوات كمشروع لتسريع تطوير شبكة خدمة متوافقة مع Istio لمنصة Kubernetes التي تعمل فوق NGINX. لم يتجاوز المنتج النموذج الأولي أبدًا وظل راكدًا لعدة سنوات، ولكن تم استخدام روابط الأمثلة المنشورة أثناء عملية النموذج الأولي من قبل المجتمع في مشاريع الطرف الثالث لتوسيع قدرات NGINX في Rust.

وبعد مرور بعض الوقت، احتاجت شركة F5 إلى كتابة وحدة نمطية متخصصة لـ NGINX لحماية خدماتها، حيث أرادت استخدام لغة Rust لتقليل مخاطر الأخطاء عند العمل مع الذاكرة. لحل المشكلة، تم إحضار مؤلف ngx-rust، الذي تم تكليفه بتطوير أدوات جديدة ومحسنة لإنشاء وحدات نمطية لـ NGINX بلغة Rust.

تشتمل مجموعة الأدوات على حزمتين من الصناديق:

  • nginx-sys - مولد ربط يعتمد على كود مصدر NGINX. تقوم الأداة المساعدة بتحميل كود NGINX وجميع التبعيات المرتبطة به، ثم تستخدم bindgen لإنشاء روابط عبر الوظائف الأصلية (FFI، واجهة الوظائف الأجنبية).
  • ngx - طبقة للوصول إلى وظائف C من كود Rust وواجهة برمجة التطبيقات (API) ونظام إعادة تصدير الارتباطات التي تم إنشاؤها باستخدام nginx-sys.

المصدر: opennet.ru

إضافة تعليق