À propos du projet
Goa est un framework axé sur la conception pour la création de services Go. Au lieu d'écrire séparément les gestionnaires, les clients et les spécifications, vous décrivez une seule fois les types, les méthodes, la validation et les erreurs dans un DSL basé sur Go, et le générateur produit le reste.
Ce que le générateur produit à partir d'une seule conception :
- Interfaces de service typées, points de terminaison, clients et validation des limites
- Gestionnaires de serveur HTTP, encodeurs/décodeurs, clients Go, commandes CLI et spécifications OpenAPI
- Définitions de tampons de protocole gRPC, adaptateurs serveur/client, sérialisation et commandes CLI
- Code serveur/client JSON-RPC, répartition des requêtes, lots et notifications
- Prise en charge du streaming : WebSocket et SSE pour HTTP, SSE pour JSON-RPC et flux gRPC
- Vues de résultats nommées avec code pour sélectionner et sérialiser les formes de réponse
Une définition de service unique peut exposer la même opération sur HTTP, gRPC et JSON-RPC. Les transports générés partagent une interface de service commune, de sorte que la logique métier est implémentée une seule fois en Go ordinaire en dehors de l'arborescence générée. La modification de la conception et la régénération mettent à jour ensemble les gestionnaires, les clients, la validation et les spécifications, ce qui réduit l'écart entre le code et la documentation.
Le README met également en évidence un flux de travail d'agent de codage : une compétence de « concepteur de services Goa » peut être installée dans un référentiel d'applications pour guider les modifications de conception, la génération, l'implémentation et la vérification. Le projet renvoie à Goa-AI pour la création d'agents IA et de serveurs MCP qui réutilisent les types Goa et lient les outils aux méthodes de service, avec des moteurs d'exécution en mémoire ou Temporal.
Pour commencer, Go 1.26 ou version ultérieure est requis (1.27.1 recommandé). Un guide de démarrage rapide vous guide dans l'initialisation d'un module, la rédaction d'une conception, l'exécution du générateur et des commandes d'exemple, et l'appel du service résultant. Pour les trois transports, le compilateur de tampons de protocole et les générateurs Go protobuf sont nécessaires ; une première exécution HTTP uniquement peut omettre les blocs gRPC et JSON-RPC.
La documentation couvre la référence DSL, la génération de code, les guides spécifiques au transport, les sujets de production tels que les schémas de sécurité et les intercepteurs, ainsi qu'un ensemble d'exemples d'applications. Le projet est sous licence MIT et accepte les contributions de la communauté.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.