منصوبے کے بارے میں

QPub Server ایک خود میزبانی پیغام رسانی سرور ہے جو ریئل ٹائم pub/sub Channels کو job Queues کے ساتھ جوڑتا ہے، اور REST اور WebSocket انٹرفیس کے ذریعے پیش کیا جاتا ہے۔ یہ ان ٹیموں کے لیے ہے جو اپنا پیغام رسانی کا بنیادی ڈھانچہ چلانا چاہتی ہیں بجائے کسی میزبان سروس پر انحصار کرنے کے۔ بنیادی صلاحیتیں - Channels: WebSocket پر publish/subscribe پیغام رسانی، جس میں REST کے ذریعے اشاعت دستیاب ہے۔ - Job queues: کام کی اشیاء کو قطار میں لگانا اور نکالنا، ورکرز چلانا، اور webhooks وصول کرنا۔ - Multi-tenancy: tenants ایک دوسرے سے الگ تھلگ ہیں اور ان پر rate limits لاگو کی جا سکتی ہیں۔ - تصدیق: API keys اور client tokens رسائی کی حفاظت کرتے ہیں؛ ایک علیحدہ control token provisioning API کی حفاظت کرتا ہے۔ - Control API: tenants، API keys، limits، queues اور workers کا انتظام کریں، اور ریئل ٹائم اعدادوشمار اور کنکشنز کا معائنہ کریں۔ بیکنگ خدمات سرور NATS JetStream، Redis اور Postgres پر انحصار کرتا ہے، جس میں CockroachDB کو ڈرائیور سیٹنگ کے ذریعے متبادل ڈیٹا بیس کے طور پر سپورٹ کیا جاتا ہے۔ شروع کرنا README مثال کے طور پر environment فائل کاپی کرنے اور Docker Compose چلانے کا مشورہ دیتا ہے، جو Postgres کے ساتھ Redis اور NATS بھی لاتا ہے۔ ڈیفالٹ پورٹس Control API کے لیے 8091، REST کے لیے 8111، اور WebSocket کے لیے 8131 ہیں۔ REST یا WebSocket کالز کرنے سے پہلے Control API کے ذریعے ایک tenant اور API key بنانا ضروری ہے۔ Go ٹولنگ کا استعمال کرتے ہوئے لوکل بلڈ کا راستہ بھی دستاویز کیا گیا ہے، جس کے لیے environment کنفیگریشن کے ذریعے اسی بیکنگ خدمات تک رسائی درکار ہے۔ Control API bearer token یا حسب ضرورت ہیڈر کے ساتھ تصدیق شدہ ہے؛ اگر token خالی چھوڑ دیا جائے تو control API کھلا رہتا ہے، جسے README صرف لوکل ڈیولپمنٹ کے لیے نوٹ کرتا ہے۔ دستاویزی endpoints میں health checks، instance identity اور metrics، tenant تخلیق، فہرست، بازیافت اور حذف، فی-tenant اعدادوشمار، کنکشنز، channels، rate limits، API keys، queues اور workers شامل ہیں۔ یہ پروجیکٹ Apache License 2.0 کے تحت لائسنس یافتہ ہے۔