Outil CLI
zeromicro/go-zero avatar
zeromicro/go-zero

go-zero : un framework Go de microservices construit autour de goctl

go-zero est un framework Go cloud-native pour microservices web et RPC, doté d'une conception résiliente intégrée et de goctl, une CLI qui génère du code multi-langages à partir de fichiers .api.

33 326 étoiles4 315 forksGoMIT

En bref

De quoi s’agit-il ?
Le README présente go-zero comme un framework Web et RPC doté d'une conception de résilience et d'un outil en ligne de commande pour la génération de code.
À qui s’adresse-t-il ?
Pour évaluer go-zero, partez des commandes et des fichiers cités dans le README, puis vérifiez concrètement le flux propre à go-zero. L observation doit porter sur les entrées, les sorties et les messages d erreur propres au projet, car le dépôt ne promet pas davantage.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 4 jours.
En quel langage est-il écrit ?
Principalement Go, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Un framework Web et RPC avec un générateur en CLI

go-zero est décrit dans son README comme un framework Web et RPC avec des pratiques d'ingénierie intégrées, conçu pour maintenir la stabilité des services très sollicités grâce à une conception de résilience. Les métadonnées du dépôt le qualifient de « A cloud-native Go microservices framework with cli tool for productivity. » Le README affirme que go-zero dessert depuis des années des sites comptant des dizaines de millions d'utilisateurs, mais il ne nomme pas ces sites. Le framework comprend un outil de génération de code, goctl, qui lit les fichiers .api et peut générer du code pour Go, iOS, Android, Kotlin, Dart, TypeScript et JavaScript. Le README indique également que le projet est répertorié dans le CNCF Cloud Native Landscape, sans fournir plus de détails.

Pourquoi l'équipe l'a construit : le contexte de 2018

Le README indique que le projet a commencé après le passage de l'équipe d'une architecture monolithique Java et MongoDB à des microservices au début de 2018. Go a été choisi pour ses performances, sa syntaxe simple, son expérience de déploiement et sa faible consommation de ressources ; un framework de microservices conçu en interne a été retenu pour mieux isoler les problèmes, étendre les fonctionnalités et résoudre les problèmes plus rapidement. Les principes de conception annoncés sont la simplicité, la haute disponibilité, la résilience, la convivialité pour les développeurs et l'extension facile. Ce sont les propres explications du projet ; le README ne fournit aucune preuve externe de la migration ou des résultats de conception.

Fonctionnalités de résilience et outils de microservices

Le README énumère le contrôle de délai d'attente chaîné intégré, le contrôle de concurrence, la limitation de débit, un disjoncteur adaptatif et un délestage adaptatif, et indique qu'aucune configuration n'est nécessaire. Il mentionne également des middlewares intégrés pouvant être intégrés à d'autres frameworks, la validation automatique des paramètres de requête, et une collection d'outils de gestion de microservices et de concurrence. Dans les fonctionnalités d'implémentation, il ajoute la découverte de services, l'équilibrage de charge, le traçage des appels, la gestion du cache, ainsi que les métriques et la surveillance. Le README présente ces éléments comme des affirmations de conception ; aucun exemple de code ni détail de configuration n'est inclus dans la page.

Le flux de travail goctl dans le démarrage rapide

Le démarrage rapide commence par l'installation de goctl, via `go install github.com/zeromicro/go-zero/tools/goctl@latest`, Homebrew ou une image Docker. Un simple fichier greet.api définit un type Request et Response ainsi qu'une route GET avec un paramètre de chemin. L'exécution de `goctl api go -api greet.api -dir greet` génère un projet Go contenant les paquets etc, handler, logic, svc et types. Le service s'exécute avec `go run greet.go -f etc/greet-api.yaml` sur le port 8888 par défaut, et le README précise que ce port est configurable dans etc/greet-api.yaml. Le README montre aussi des commandes de génération de client telles que `goctl api java -api greet.api -dir greet` et `goctl api dart -api greet.api -dir greet`. La structure générée est documentée, mais le README n'explique pas comment goctl gère tous les cas limites de la syntaxe API.

Outils de développement assistés par IA

Le README décrit des outils d'IA pour Claude, GitHub Copilot, Cursor et Windsurf. Trois projets sont nommés : ai-context, un guide de flux de travail ; zero-skills, une bibliothèque de modèles ; et mcp-zero, des outils de génération de code via le Model Context Protocol. Les instructions d'installation comprennent des commandes git submodule pour Copilot et Cursor, une étape git clone et build pour Claude Desktop, ainsi que la configuration d'un fichier JSON pour Claude. Le README indique que ces outils fonctionnent ensemble pour générer du code conforme au framework, mais il ne documente pas la qualité du code généré ni une comparaison avec l'utilisation manuelle de goctl.

Benchmarks, licence et points à vérifier

Le README montre une image de benchmark et un lien vers du code de test externe, mais il ne publie aucun chiffre de benchmark dans le dépôt. Les affirmations concernant le service à des dizaines de millions d'utilisateurs sont répétées sans nommer les services concernés. L'extrait de licence MIT accorde les droits d'utilisation, de copie, de modification, de fusion, de publication, de distribution, de sous-licence et de vente, à condition que l'avis de droit d'auteur soit inclus. Elle exclut explicitement toute garantie et toute responsabilité. La licence ne dit rien sur la posture de sécurité, le support ou la maintenance ; ces éléments ne sont pas établis par les documents du dépôt.

Conclusion éditoriale

Pour évaluer go-zero, partez des commandes et des fichiers cités dans le README, puis vérifiez concrètement le flux propre à go-zero. L observation doit porter sur les entrées, les sorties et les messages d erreur propres au projet, car le dépôt ne promet pas davantage. Le projet peut convenir à ce profil, mais go-zero ne convient pas à qui cherche une garantie que le README ne fournit pas.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté