عن المشروع

Goa هو إطار عمل يركز على التصميم أولاً لبناء خدمات Go. بدلاً من كتابة المعالجات والعملاء والمواصفات بشكل منفصل، تصف الأنواع والطرق والتحقق والأخطاء مرة واحدة في DSL مبنية على Go، ويقوم المولّد بإنتاج الباقي. ما يولّده المولّد من تصميم واحد: - واجهات الخدمة المكتوبة، ونقاط النهاية، والعملاء، والتحقق من الحدود - معالجات خادم HTTP، والمشفرات/فك التشفير، وعملاء Go، وأوامر CLI، ومواصفات OpenAPI - تعريفات Protocol Buffer لـ gRPC، ومهايئات الخادم/العميل، والتسلسل، وأوامر CLI - رموز خادم/عميل JSON-RPC، وتوزيع الطلبات، والدفعات، والإشعارات - دعم البث: WebSocket وSSE لـ HTTP، وSSE لـ JSON-RPC، وبث gRPC - طرق عرض نتائج مسماة مع رموز لتحديد وتسلسل أشكال الاستجابة يمكن لتعريف خدمة واحد أن يعرض نفس العملية عبر HTTP وgRPC وJSON-RPC. تشترك النقلات المولّدة في واجهة خدمة واحدة، لذا يتم تنفيذ منطق الأعمال مرة واحدة في Go عادي خارج الشجرة المولّدة. تغيير التصميم وإعادة التوليد يحدّث المعالجات والعملاء والتحقق والمواصفات معًا، مما يقلل الانحراف بين الكود والوثائق. يبرز README أيضًا سير عمل وكيل برمجي: يمكن تثبيت مهارة "مصمم خدمات Goa" في مستودع تطبيق لتوجيه تغييرات التصميم والتوليد والتنفيذ والتحقق. يشير المشروع إلى Goa-AI لبناء وكلاء AI وخوادم MCP تعيد استخدام أنواع Goa وتربط الأدوات بطرق الخدمة، مع محركات تنفيذ في الذاكرة أو Temporal. البدء يتطلب Go 1.26 أو أحدث (يوصى بـ 1.27.1). يشرح دليل البدء السريع تهيئة وحدة، وكتابة تصميم، وتشغيل المولّد وأوامر الأمثلة، واستدعاء الخدمة الناتجة. لجميع النقلات الثلاث، يلزم مترجم Protocol Buffer ومولّدات Go protobuf؛ يمكن لتشغيل أولي عبر HTTP فقط حذف كتل gRPC وJSON-RPC. تغطي الوثائق مرجع DSL، وتوليد الكود، وأدلة خاصة بالنقلات، ومواضيع الإنتاج مثل مخططات الأمان والاعتراضات، ومجموعة من التطبيقات الأمثلة. المشروع مرخّص بموجب MIT ويقبل مساهمات المجتمع.