finds.dev← search

// the find

zeromicro/go-zero

★ 33,092 · Go · MIT · updated Jun 2026

A cloud-native Go microservices framework with cli tool for productivity.

go-zero is a batteries-included Go microservices framework built around a code-generation CLI (goctl) that produces REST and gRPC service scaffolding from a custom .api spec file. It ships with its own circuit breaker, rate limiter, adaptive load shedder, service discovery, and distributed cache layer — you get a full opinionated stack, not just a router. Aimed at teams running high-traffic services who want Go's performance with Java-style operational guardrails baked in.

The resilience primitives are production-grade and zero-config by default — the Google-SRE-style circuit breaker in core/breaker uses a rolling window and probabilistic rejection, which is meaningfully better than most on/off breakers. goctl's code generation from .api files is genuinely useful: one spec produces server stubs, client SDKs, routes, and request validators simultaneously, which eliminates a whole class of drift bugs. The core/ package is modular enough to pull individual pieces (mapreduce, timingwheel, bloom filter) without buying into the full framework. Test coverage across core primitives is thorough — most packages have fuzz tests and table-driven test suites.

goctl's .api DSL is a proprietary format with no ecosystem tooling outside this repo — if you need something it doesn't support you're either hacking templates or abandoning the generator entirely. Service discovery is hard-wired to etcd; if you're already running Consul or k8s-native discovery, you're writing your own integration. The documentation lives mostly in Chinese, and the English docs lag noticeably — the quick-start examples are fine but anything past basic service wiring requires reading source or joining the Discord. The AI-native tooling section added recently (mcp-zero, ai-context, zero-skills) reads more like a marketing experiment than something you'd actually ship with; it's three separate repos you'd need to keep in sync as submodules.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →