A cloud-native Go microservices framework with built-in engineering practices for high-availability services.
go-zero is a cloud-native web and RPC framework written in Go, designed for building microservices with built-in engineering practices. It focuses on ensuring service stability under high concurrency through resilience features like circuit breaking, rate limiting, and adaptive load shedding. The framework includes a CLI tool (goctl) for code generation across multiple languages from simple API descriptions.
Go developers building scalable, high-availability microservices for cloud-native environments, especially those needing resilience and productivity tools.
Developers choose go-zero for its battle-tested resilience features, integrated code generation that reduces boilerplate, and AI-native tooling that accelerates development while maintaining framework conventions.
A cloud-native Go microservices framework with cli tool for productivity.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Integrates adaptive circuit breakers, rate limiting, and load shedding with minimal configuration, proven in services with tens of millions of users for high concurrency stability.
The goctl CLI generates Go, iOS, Android, Kotlin, Dart, TypeScript, and JavaScript from .api files, reducing boilerplate and accelerating multi-platform development.
Provides AI context, patterns, and MCP tools for Claude, Copilot, and Cursor to generate framework-compliant code, enhancing developer productivity with AI-assisted workflows.
Optimized for speed and efficiency, with benchmarks showing strong performance in Go web framework comparisons, making it suitable for high-load scenarios.
The framework enforces a specific structure and relies heavily on goctl for code generation, which can be restrictive for teams wanting more flexibility or custom architectures.
New users must learn the .api syntax, goctl commands, and AI tooling integration, adding initial overhead compared to simpler Go frameworks like Gin or Echo.
Adopting go-zero means committing to its toolchain and patterns, potentially creating vendor lock-in and making migration to other frameworks more difficult.