go-kit VS chi

Compare go-kit vs chi and see what are their differences.


A standard library for microservices. (by go-kit)


lightweight, idiomatic and composable router for building Go HTTP services (by go-chi)
Our great sponsors
  • Scout APM - A developer's best friend. Try free for 14-days
  • Nanos - Run Linux Software Faster and Safer than Linux with Unikernels
  • SaaSHub - Software Alternatives and Reviews
go-kit chi
13 31
21,793 10,507
1.3% 1.8%
7.7 7.2
13 days ago 4 days ago
Go Go
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of go-kit. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-11-15.
  • Fun with generics: REST HTTP handler proof-of-concept
    3 projects | reddit.com/r/golang | 15 Nov 2021
    This comes dangerously close to functional services as popularized by Twitter et al and encapsulated in the well known Finagle library. I don’t know but I strongly suspect /u/peterbourgon was heavily influenced by this while developing the notion of Endpoints in his reasonably well known go-kit library, although it’s significantly less general due mostly to limitations in Go’s type system.
  • Is there any course for leaning MicroService with Golang? Thanks.
    1 project | reddit.com/r/golang | 7 Nov 2021
    I think go-kit would be a good starting point.
  • Protocols and Composition in Python
    3 projects | dev.to | 4 Nov 2021
    I first learned of this pattern in Go's go-kit where I've seen it called "service middlewares". The Design Patterns book describes something similar as the "decorator" pattern - not to be confused with Python decorators, which have the unfortunate property of melding themselves with what they decorate, which limits their practical usefulness, at least as far as reducing coupling is concerned.
  • Do you guys use frameworks with Go for backend development?
    7 projects | reddit.com/r/golang | 8 Oct 2021
    Go kit is a good backend development toolkit ... but not a framework.
  • Peter Bourgon: I have been permanently banned from all Golang community spaces
    1 project | news.ycombinator.com | 16 Sep 2021
    I recognize him for his efforts to bring Go to the enterprise world with https://gokit.io/ and public speaking, rooting for Go, when Go was not as prominent as it is today.

    I don’t know the reasons why he got banned, but it is irritating.

  • Scala or Go: Who Wore It Better?
    7 projects | dev.to | 6 Sep 2021
    After Go took off at Google and was released to the public, it got really popular as the language of concurrency, which helped in turn to make it the language of DevOps--particularly in concert with Kubernetes, which also emerged from Google. Go has expanded into other domains as well with the CMS Hugo and the microservices framework Go kit.
  • Should I learn Golang or use Ansible to delveop the operators?
    8 projects | reddit.com/r/kubernetes | 19 Aug 2021
    What's great is there are really great patterns to follow out there on github (both code patterns https://github.com/tmrts/go-patterns and examples https://github.com/avelino/awesome-go https://github.com/go-kit/kit and for the app itself, https://github.com/golang-standards/project-layout )... and for me a really naggy mentor who insists everything be "idiomatic go"
  • Questions on linters
    3 projects | reddit.com/r/golang | 29 Jun 2021
    For more background and discussion, including several demonstrations of error handling decorators, please see Go kit issue #164, Explain why Logger.Log returns error.
  • Show HN: We wrote a book about building business applications in Go
    7 projects | news.ycombinator.com | 13 May 2021
    Thanks for mentioning this experience -- I was really excited about Go early on but went with other languages after a while so didn't make any huge projects with it (and definitely not at a large employer/go shop).

    Did you have to do a lot of stuff that is DDD-related? Like building out abstractions for adapters and connection points, or did you use libraries that did that part for you mostly? I know of some stuff out there like go kit[0] which is quite pragmatic and does some of the 80% use-cases (serialization, transports, etc) DDD stuff for you.

    I think for the most part it's rare to actually need to write a lot of your own DDD pieces for CRUD-y apps, and the parts where the complexity would be worth it are often already done for you by the libraries/frameworks used.

    [0]: https://gokit.io/

  • Show HN: Encore – Go framework for distributed systems
    6 projects | news.ycombinator.com | 14 Apr 2021


Posts with mentions or reviews of chi. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-03.
  • Which web framework would you recommend?
    4 projects | reddit.com/r/golang | 3 Dec 2021
    I'm a big fan of go-chi. Their documentation and examples are top-notch.
  • 4 Things to Consider When Choosing a Go API Framework
    5 projects | dev.to | 16 Nov 2021
    Eli Bendersky has an excellent series where they walk you through building a REST API in Go by first starting with the standard library and then introducing a router such as gorilla or chi and finally switching over to using a complete web framework. This series shows some of the downsides of sticking with the standard library entirely and how extra libraries such as the two router packages above can be extremely helpful.
  • Would it be better to use Frameworks or not ?
    3 projects | reddit.com/r/golang | 25 Oct 2021
    If you purely build a rest api using core modules will get you pretty far. There are multiple small wrappers out there that provide better routing and possibly a nicer api. As an example https://github.com/go-chi/chi is only 1K LOC and compatible with handleFunc.
  • Release v2.20.0 · gofiber/fiber
    2 projects | reddit.com/r/golang | 6 Oct 2021
    I really like chi. Feels like an extension for the go http lib
  • Migrating from PHP to Go
    26 projects | reddit.com/r/golang | 30 Sep 2021
    https://github.com/go-chi/chi for routing, it has a nice interface, and is extremely light on resources (not a big deal for a router, but if it's available with a nice API, why not?
    26 projects | reddit.com/r/golang | 30 Sep 2021
    I'm a big fan of [Twirp RPC](https://github.com/twitchtv/twirp), and [go-chi/chi](https://github.com/go-chi/chi) if I need to provide REST endpoints, authentication or other routing middleware. The "gorilla" set of packages are also useful, I always reach for gorilla/websocket if I need to do some websocket work. You can look at an example service in [go-bridget/notify](https://github.com/go-bridget/notify) - the main files to look at are under rpc/notify/notify.proto/.go, and the implementation which you write is under server/notify. If you'd create database drivers, I'd create a package under server/notify/mysql (for example), and then implement an interface for data retrieval/settings. It's on the todolist, if I'll ever need to implement anything other than JWT, or Redis. Comment if you have any questions or notes.
  • Router/mux for golang.
    1 project | reddit.com/r/golang | 5 Sep 2021
    I’m personally a fan of chi router. Fast, works with standard http package handlers.
  • What are your favorite packages to use?
    55 projects | reddit.com/r/golang | 15 Aug 2021
    chi for routing
    55 projects | reddit.com/r/golang | 15 Aug 2021
    Chi HTTP Router
    55 projects | reddit.com/r/golang | 15 Aug 2021
    Here is link number 2 - Previous text "Chi"

What are some alternatives?

When comparing go-kit and chi you can also consider the following projects:

Gin - Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

mux - A powerful HTTP router and URL matcher for building Go web servers with 🦍

Echo - High performance, minimalist Go web framework

httprouter - A high performance HTTP request router that scales well

Fiber - ⚡️ Express inspired web framework written in Go

goa - Design-based APIs and microservices in Go

GoSwagger - Swagger 2.0 implementation for go

Gizmo - A Microservice Toolkit from The New York Times

Beego - beego is an open-source, high-performance web framework for the Go programming language.

negroni - Idiomatic HTTP Middleware for Golang