
Go kit
A Go toolkit of packages and best practices for building microservices.go-kit/kit
- Stars
- 27.4k
- Forks
- 2.4k
- Licence
- MIT
- Language
- Go
- Last update
- 2.3 years ago
- Type
- Library
No commits in over a year — check for forks or alternatives before adopting.
What it is
Go kit is a set of Go packages and practices for building microservices, or modular monoliths, in the Go language. According to its README, it addresses common problems in distributed systems and application architecture so developers can focus on business logic. It is aimed at RPC-style communication in mixed service environments, with pluggable serialization and transport.
- Structure a Go service around RPC endpoints with pluggable transports
- Add common distributed-systems building blocks to an existing Go backend
- Build an elegant monolith in Go using the same packages
- Use the packages as a reference for microservice best practices
Great for
- Go developers building service-oriented or microservice backends
- Teams working in heterogeneous environments where services interact with non-Go-kit services
- Developers who want pluggable transports and serialization instead of only JSON over HTTP
- Organizations that want to adopt existing infrastructure without mandated tools
Not ideal for
- Non-Go developers, since the toolkit is written for Go
- Projects needing messaging patterns other than RPC, such as pub/sub or CQRS, because the README lists these as non-goals for now
- Teams wanting opinions on deployment, configuration, or orchestration, which the README says Go kit does not provide
How to get it
- 1
Install with a package manager
You'll need: Go (version not specified in the README)
Clone the repository
git clone https://github.com/go-kit/kit - 2
Run it
- Read the website at gokit.io and the package reference on pkg.go.dev
- Add the module to a Go project with the standard modules tooling
- Start with a small RPC service using the packages you need
- 3
Get the most out of it
- Check the third-party code generators listed in the README, such as microgen and protoc-gen-go-kit, to scaffold code
- Read the linked talks and blog post for the design rationale
- Join the #go-kit Slack channel or mailing list for help
Downloads
Strengths
- Explicitly designed for interoperating with services not written in Go kit
- Modular: you use only the packages you need and it avoids mandating specific tools
- Module-aware and says it remains compatible with non-modules environments
Trade-offs
- The README is truncated and does not document specific packages or API details, so the scope is hard to judge from it alone
- Major version 0 means the API may change, per the project's own note on compatibility
- Operational concerns like deployment and orchestration are left to you
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| kit (this) | 27.4k | Library | advanced | 2.3 years ago | Go developers building service-oriented or microservice backends |
| go-zero | 33.4k | Library | intermediate | 5 days ago | Go developers building REST APIs or microservices |
| kratos | 26k | Library | intermediate | 4 days ago | Go developers building a set of backend services that talk over HTTP or gRPC |
| chi | 23k | Library | intermediate | 19 days ago | Go developers building REST API services |
| zap | 24.7k | Library | beginner | 2 months ago | Go developers building services that log heavily |
| lo | 21.4k | Library | beginner | 5 days ago | Go developers who often transform slices or maps |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.