Skip to content

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
Step-by-step guide: how to use Go kitInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
kit (this)27.4kLibraryadvanced2.3 years agoGo developers building service-oriented or microservice backends
go-zero33.4kLibraryintermediate5 days agoGo developers building REST APIs or microservices
kratos26kLibraryintermediate4 days agoGo developers building a set of backend services that talk over HTTP or gRPC
chi23kLibraryintermediate19 days agoGo developers building REST API services
zap24.7kLibrarybeginner2 months agoGo developers building services that log heavily
lo21.4kLibrarybeginner5 days agoGo 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.