finds.dev← search

// the find

go-kratos/kratos

★ 25,727 · Go · MIT · updated Jun 2026

Your ultimate Go microservices framework for the cloud-native era.

Kratos is a Go microservices framework built around Protobuf-first API design, generating both HTTP and gRPC server stubs from the same .proto files. It targets teams that want opinionated project structure and code generation over hand-rolled service glue. Heavily used in the Chinese Go ecosystem; v3 is a breaking cleanup of v2.

Dual HTTP/gRPC transport from a single Protobuf definition is genuinely well-executed — the protoc-gen-go-http plugin generates idiomatic routing without reflection hacks. The contrib ecosystem is honest about separation: each integration lives in its own go.mod, so you don't drag in consul, etcd, and nacos just because you imported the registry interface. Structured error types backed by Protobuf (errors.proto) mean gRPC status codes and HTTP status codes stay in sync without manual mapping. The v3 migration made previously implicit middleware ordering explicit, which is the right call even if it broke people.

The toolchain dependency is real friction — you need protoc, protoc-gen-go, protoc-gen-go-http, and protoc-gen-go-errors before you can do anything useful, and the getting-started docs gloss over version pinning those tools. The registry abstraction is too thin: it gives you Register/Deregister/Watch but no circuit-breaking or load balancing, so you end up wiring contrib packages that each have their own configuration model. Documentation is bilingual but asymmetric — Chinese docs are more thorough and more current, English docs lag. MCP transport was added to the contrib recently but is essentially undocumented beyond a README stub, which is a pattern that repeats across several contrib packages.

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 →