Go Web Frameworks

Open-source Go projects categorized as Web Frameworks

Top 23 Go Web Framework Projects

  • GitHub repo 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.

    Project mention: HandleFunc vs Handle | reddit.com/r/golang | 2021-02-23

    At that point you may start looking at some of the larger frameworks out there like gorilla, gin, fiber, etc. Only because they have built-in functionality for those sort of things (i.e. logging middleware), and you may find it easier to work with.

  • GitHub repo Iris

    The fastest HTTP/2 Go Web Framework. AWS Lambda, gRPC, MVC, Unique Router, Websockets, Sessions, Test suite, Dependency Injection and more. A true successor of expressjs and laravel | 谢谢 https://github.com/kataras/iris/issues/1329 |

    Project mention: What's the fastest template parser in Go? | dev.to | 2020-10-01


  • Scout

    Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo go-kit

    A standard library for microservices.

    Project mention: Dapr, Micro -- which do you use for cloud development? | reddit.com/r/golang | 2021-02-23

    https://github.com/go-kit/kit is used widely but might introduce complexity

  • GitHub repo Echo

    High performance, minimalist Go web framework

    Project mention: Go, Kafka, gRPC and MongoDB microservice with metrics and tracing 👋 | dev.to | 2021-02-28

    and REST API handler using echo:

  • GitHub repo mux

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

    Project mention: Basic question: How to install a package? | reddit.com/r/golang | 2021-02-26

    After installing Go and setting up my GOPATH, I'd like to install the gorilla/mux package. So I do

  • GitHub repo httprouter

    A high performance HTTP request router that scales well

    Project mention: Choosing building blocks to move faster | dev.to | 2021-02-01

    Another common reason to decide against using an existing component is when it doesn't satisfy your requirements. For this project, I needed to prioritize the performance of the web server, and so I knew I needed an HTTP framework that performed well across a number of benchmarks, but I also needed some unusual capabilities such as being able to swap out the router in real-time. In the end, I decided on a hybrid approach for the web server, choosing to build a custom framework around the well-loved httprouter, which granted the majority of what I needed, and had some extremely well thought-out integration points that made it easy for me to build on top of it. In the case of the message bus, I also had a requirement of decentralization, which the majority of available projects are not.

  • GitHub repo Revel

    A high productivity, full-stack web framework for the Go language.

    Project mention: Any way of reducing the verbosity at the web development with Go? | reddit.com/r/golang | 2021-01-11

    Of course there are options that make your work a lot less frustrating. From your choice of tools, you're probably trying to setup your architecture yourself but if that's not a necessity for you, you can tap into community frameworks that have basic features wired. There is Revel https://github.com/revel/revel A Rails alternative in Go.

  • GitHub repo Fiber

    ⚡️ Express inspired web framework written in Go

    Project mention: First Golang REST API | reddit.com/r/golang | 2021-02-20
  • GitHub repo chi

    lightweight, idiomatic and composable router for building Go HTTP services

    Project mention: Release v5.0.0 · go-chi/chi | reddit.com/r/golang | 2021-02-27

    To me, software is art, and I intentionally spent so much time to craft chi to the create a router with the absolute best ergonomics and developer experience. With forced-SIV, I'm unable to fulfill this purpose and now feel deeply uninspired. If proposal 44550 is rejected, I will most likely archive go-chi/chi and create a new repository at go-chi/mux and start from v0 and never leave it. https://github.com/go-chi/chi/issues/561#issuecomment-787462275

  • GitHub repo negroni

    Idiomatic HTTP Middleware for Golang

  • GitHub repo GoSwagger

    Swagger 2.0 implementation for go

    Project mention: SwaggerUI with Golang | reddit.com/r/golang | 2021-03-02

    A lot of the benefits of swagger come from code and yaml generation. So you can take a look at something like go-swagger and use that to generate client code and server boilerplate from your yaml. Another way around is you can have the swagger yaml or json be generated from docstrings in the code (but that wouldn't be design first I guess). I have an example of that here if you want to look. Just pop open any of the files that starts with a get/post/put/etc.

  • GitHub repo Buffalo

    Rapid Web Development w/ Go

  • GitHub repo gqlgen

    go generate based graphql server library

    Project mention: Tried to Create Crud API Gin+Gorm+GraphQL(gqlgen) | dev.to | 2021-01-01


  • GitHub repo goa

    Design-based APIs and microservices in Go

    Project mention: First Golang REST API | reddit.com/r/golang | 2021-02-20

    I'm new to golang and I've found the goa framework at https://goa.design/. It allows to build a REST and/or a gRPC API and automatically generates a CLI. Has anyone worked with it?

  • GitHub repo go-socket.io

    socket.io library for golang, a realtime application framework.

  • GitHub repo web.go

    The easiest way to create web applications with Go

  • GitHub repo go-json-rest

    A quick and easy way to setup a RESTful JSON API

  • GitHub repo Macaron

    Package macaron is a high productive and modular web framework in Go.

  • GitHub repo alice

    Painless middleware chaining for Go

    Project mention: Web Development in Go: Middleware, Templating, Databases & Beyond | dev.to | 2021-01-27

    You can use a library like Alice to transform the above construct to a more readable form such as:

  • GitHub repo utron

    A lightweight MVC framework for Go(Golang)

  • GitHub repo melody

    :notes: Minimalist websocket framework for Go

  • GitHub repo Tollbooth

    Simple middleware to rate-limit HTTP requests.

    Project mention: Ways to Rate Limit Requests in Go | dev.to | 2021-01-12
  • GitHub repo CORS

    Go net/http configurable handler to handle CORS requests (by rs)

    Project mention: I had a Go, CORS and Single Page App Ordeal So You Don’t Have To | Integration Junction | reddit.com/r/golang | 2021-02-22

    It might be a function of the fact that the project had a hand crafted main rather than using the generated one, but when I hit this for adding CORS to a go-swagger project we used a handler generated by rs/cors as middleware - it (and a bunch of other middleware) wrapped the generated server's handler as go-swagger uses one root handler.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-03-02.


What are some of the best open-source Web Framework projects in Go? This list will help you:

Project Stars
1 Gin 46,095
2 Iris 20,118
3 go-kit 19,462
4 Echo 19,249
5 mux 13,800
6 httprouter 12,421
7 Revel 12,161
8 Fiber 11,850
9 chi 8,962
10 negroni 6,915
11 GoSwagger 6,151
12 Buffalo 6,110
13 gqlgen 5,607
14 goa 4,146
15 go-socket.io 3,943
16 web.go 3,514
17 go-json-rest 3,460
18 Macaron 3,127
19 alice 2,212
20 utron 2,183
21 melody 2,072
22 Tollbooth 1,875
23 CORS 1,759