CLI-Tool
zeromicro/go-zero avatar
zeromicro/go-zero

go-zero: ein Go-Mikroservices-Framework rund um goctl

go-zero ist ein Cloud-natives Go-Framework für Web- und RPC-Microservices mit eingebautem Resilienz-Design und goctl, einem CLI, das aus .api-Dateien Code für viele Sprachen erzeugt.

33.326 Sterne4.315 ForksGoMIT

Auf einen Blick

Was ist das?
Das README beschreibt go-zero als Web- und RPC-Framework mit Resilienz-Design und einem CLI-Tool zur Codegenerierung.
Für wen ist es gedacht?
Das README zeigt den vorgesehenen Arbeitsablauf von go-zero klar auf: eine .api-Datei schreiben, mit goctl Server- und Clientcode erzeugen und auf die eingebauten Resilienzmechanismen setzen. Die Behauptungen zum Produktionsumfang und das Benchmark-Bild werden im Repository selbst nicht durch Zahlen oder namentlich genannte Nutzer gestützt; das bleibt offen zu verifizieren.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 4 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Go, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Ein Web- und RPC-Framework mit einem CLI-Generator

go-zero wird im README als Web- und RPC-Framework mit eingebauten Engineering-Praktiken beschrieben, das durch Resilienz-Design die Stabilität stark beanspruchter Dienste sichern soll. Die Repository-Metadaten nennen es „A cloud-native Go microservices framework with cli tool for productivity." Das README sagt, go-zero habe seit Jahren Websites mit zig Millionen Nutzern bedient, nennt diese Websites aber nicht. Das Framework enthält ein Codegenerierungswerkzeug namens goctl, das .api-Dateien liest und Code für Go, iOS, Android, Kotlin, Dart, TypeScript und JavaScript erzeugen kann. Das README erwähnt außerdem, dass das Projekt im CNCF Cloud Native Landscape gelistet ist, ohne weitere Details zu nennen. go-zero ist im Repository zeromicro/go-zero dokumentiert. Die README nennt den Standard-Branch master, die verwendete Sprache Go und die Lizenz MIT. Die veröffentlichten Angaben beziehen sich auf den Stand der eingelesenen Projektdatei.

Warum das Team es baute: Hintergrund 2018

Das README sagt, das Projekt begann, nachdem das Team Anfang 2018 von einer Java- und MongoDB-Monolitharchitektur zu Microservices gewechselt war. Go wurde wegen hoher Leistung, einfacher Syntax, guter Deployment-Erfahrung und geringem Ressourcenverbrauch gewählt; ein selbst entworfenes Microservices-Framework sollte Probleme besser isolieren, Funktionen leichter erweitern und Probleme schneller lösen. Die angegebenen Designprinzipien sind Einfachheit, hohe Verfügbarkeit, Resilienz, Entwicklerfreundlichkeit und leichte Erweiterbarkeit. Das ist die eigene Darstellung des Projekts; das README enthält keine externen Belege für die Migration oder die Designergebnisse. go-zero ist im Repository zeromicro/go-zero dokumentiert. Die README nennt den Standard-Branch master, die verwendete Sprache Go und die Lizenz MIT. Die veröffentlichten Angaben beziehen sich auf den Stand der eingelesenen Projektdatei.

Resilienzfunktionen und Microservice-Werkzeuge

Das README listet eingebaute verkettete Timeout-Steuerung, Nebenläufigkeitssteuerung, Ratenbegrenzung, adaptiven Circuit Breaker und adaptive Lastabwurfsteuerung auf und sagt, diese benötigen keine Konfiguration. Es erwähnt außerdem eingebaute Middleware, die in andere Frameworks integriert werden kann, automatische Validierung von Anfrageparametern und eine Reihe von Microservice-Management- und Nebenläufigkeits-Toolkits. Unter Implementierungsmerkmalen kommen Service Discovery, Lastverteilung, Aufruf-Tracing, Cache-Verwaltung sowie Metriken und Monitoring hinzu. Das README präsentiert dies als Designbehauptungen; Codebeispiele oder Konfigurationsdetails sind auf der Seite nicht enthalten. go-zero ist im Repository zeromicro/go-zero dokumentiert. Die README nennt den Standard-Branch master, die verwendete Sprache Go und die Lizenz MIT. Die veröffentlichten Angaben beziehen sich auf den Stand der eingelesenen Projektdatei.

Der goctl-Workflow im Schnellstart

Der Schnellstart beginnt mit der Installation von goctl, entweder über `go install github.com/zeromicro/go-zero/tools/goctl@latest`, Homebrew oder ein Docker-Image. Eine einfache greet.api-Datei definiert einen Request- und einen Response-Typ sowie eine GET-Route mit Pfadparameter. Der Befehl `goctl api go -api greet.api -dir greet` erzeugt ein Go-Projekt mit den Paketen etc, handler, logic, svc und types. Der Dienst läuft mit `go run greet.go -f etc/greet-api.yaml` und standardmäßig auf Port 8888; das README stellt klar, dass dieser Port in etc/greet-api.yaml konfigurierbar ist. Das README zeigt auch Client-Generierungsbefehle wie `goctl api java -api greet.api -dir greet` und `goctl api dart -api greet.api -dir greet`. Die erzeugte Struktur ist dokumentiert, aber das README erklärt nicht, wie goctl mit allen API-Syntaxgrenzfällen umgeht. go-zero ist im Repository zeromicro/go-zero dokumentiert. Die README nennt den Standard-Branch master, die verwendete Sprache Go und die Lizenz MIT. Die veröffentlichten Angaben beziehen sich auf den Stand der eingelesenen Projektdatei.

KI-gestützte Entwicklungswerkzeuge

Das README beschreibt KI-Werkzeuge für Claude, GitHub Copilot, Cursor und Windsurf. Drei Projekte werden genannt: ai-context als Workflow-Leitfaden, zero-skills als Musterbibliothek und mcp-zero als Codegenerierungswerkzeuge über das Model Context Protocol. Die Einrichtungsanleitung umfasst Git-Submodule-Befehle für Copilot und Cursor, einen Git-Clone- und Build-Schritt für Claude Desktop sowie die Konfiguration einer JSON-Datei für Claude. Das README sagt, diese Werkzeuge arbeiten zusammen, um frameworkkonformen Code zu erzeugen, enthält aber keine Angaben zur Qualität des erzeugten Codes oder einen Vergleich zur manuellen goctl-Nutzung. go-zero ist im Repository zeromicro/go-zero dokumentiert. Die README nennt den Standard-Branch master, die verwendete Sprache Go und die Lizenz MIT. Die veröffentlichten Angaben beziehen sich auf den Stand der eingelesenen Projektdatei.

Benchmarks, Lizenz und was noch zu prüfen ist

Das README zeigt ein Benchmark-Bild und verlinkt externen Testcode, veröffentlicht aber keine Benchmark-Zahlen im Repository. Die Aussagen über die Versorgung von zig Millionen Nutzern werden wiederholt, ohne die Dienste zu nennen. Der MIT-Lizenzauszug gewährt das Recht zur Nutzung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und zum Verkauf, unter der Bedingung, dass der Copyright-Hinweis enthalten ist. Er schließt Gewährleistung und Haftung ausdrücklich aus. Die Lizenz sagt nichts über Sicherheitslage, Support oder Wartung; das wird durch die Repository-Materialien nicht belegt. go-zero ist im Repository zeromicro/go-zero dokumentiert. Die README nennt den Standard-Branch master, die verwendete Sprache Go und die Lizenz MIT. Die veröffentlichten Angaben beziehen sich auf den Stand der eingelesenen Projektdatei.

Redaktionelles Fazit

Das README zeigt den vorgesehenen Arbeitsablauf von go-zero klar auf: eine .api-Datei schreiben, mit goctl Server- und Clientcode erzeugen und auf die eingebauten Resilienzmechanismen setzen. Die Behauptungen zum Produktionsumfang und das Benchmark-Bild werden im Repository selbst nicht durch Zahlen oder namentlich genannte Nutzer gestützt; das bleibt offen zu verifizieren.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen