عن المشروع
QPub Server هو خادم مراسلة قابل للاستضافة الذاتية يجمع بين قنوات النشر/الاشتراك في الوقت الفعلي وقوائم المهام، ويُتاح عبر واجهات REST وWebSocket. وهو موجّه للفرق التي ترغب في تشغيل بنيتها التحتية للمراسلة بنفسها بدلاً من الاعتماد على خدمة مستضافة.
القدرات الأساسية
- القنوات: مراسلة نشر/اشتراك تُسلَّم عبر WebSocket، مع إتاحة النشر عبر REST.
- قوائم المهام: إدراج عناصر العمل وسحبها، وتشغيل العمال، واستقبال الخطافات الويب.
- تعدد المستأجرين: المستأجرون معزولون عن بعضهم البعض ويمكن تطبيق حدود المعدل عليهم.
- المصادقة: تحمي مفاتيح API ورموز العملاء الوصول؛ ويحمي رمز تحكم منفصل واجهة برمجة التزويد.
- واجهة التحكم API: إدارة المستأجرين ومفاتيح API والحدود وقوائم الانتظار والعمال، وفحص الإحصاءات والاتصالات في الوقت الفعلي.
الخدمات الداعمة
يعتمد الخادم على NATS JetStream وRedis وPostgres، مع دعم CockroachDB كقاعدة بيانات بديلة عبر إعداد برنامج التشغيل.
بدء الاستخدام
يقترح ملف README نسخ ملف البيئة النموذجي وتشغيل Docker Compose، الذي يشغّل Postgres إلى جانب Redis وNATS. المنافذ الافتراضية هي 8091 لواجهة التحكم API، و8111 لـ REST، و8131 لـ WebSocket. يجب إنشاء مستأجر ومفتاح API عبر واجهة التحكم API قبل إجراء استدعاءات REST أو WebSocket. كما هو موثق مسار بناء محلي باستخدام أدوات Go، يتطلب وصول الخدمات الداعمة نفسها عبر إعداد البيئة.
تُصادَق واجهة التحكم API برمز حامل أو ترويسة مخصصة؛ وإذا تُرك الرمز فارغاً تكون واجهة التحكم مفتوحة، وهو ما يذكر ملف README أنه للتطوير المحلي فقط. تغطي نقاط النهاية الموثقة فحوصات السلامة وهوية المثيل والمقاييس وإنشاء المستأجرين وسردهم واسترجاعهم وحذفهم والإحصاءات لكل مستأجر والاتصالات والقنوات وحدود المعدل ومفاتيح API وقوائم الانتظار والعمال.
المشروع مرخّص بموجب Apache License 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.