Top 23 Go Web Framework 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.
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.
-
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 |
Pug
-
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.
-
go-kit
A standard library for microservices.
Project mention: Dapr, Micro -- which do you use for cloud development? | reddit.com/r/golang | 2021-02-23https://github.com/go-kit/kit is used widely but might introduce complexity
-
Echo
High performance, minimalist Go web framework
Project mention: Go, Kafka, gRPC and MongoDB microservice with metrics and tracing 👋 | dev.to | 2021-02-28and REST API handler using echo:
-
mux
A powerful HTTP router and URL matcher for building Go web servers with 🦍
After installing Go and setting up my GOPATH, I'd like to install the gorilla/mux package. So I do
-
httprouter
A high performance HTTP request router that scales well
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.
-
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-11Of 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.
-
Fiber
⚡️ Express inspired web framework written in Go
-
chi
lightweight, idiomatic and composable router for building Go HTTP services
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
-
negroni
Idiomatic HTTP Middleware for Golang
-
GoSwagger
Swagger 2.0 implementation for go
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.
-
Buffalo
Rapid Web Development w/ Go
-
gqlgen
go generate based graphql server library
99designs/gqlgen
-
goa
Design-based APIs and microservices in Go
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?
-
go-socket.io
socket.io library for golang, a realtime application framework.
-
web.go
The easiest way to create web applications with Go
-
go-json-rest
A quick and easy way to setup a RESTful JSON API
-
Macaron
Package macaron is a high productive and modular web framework in Go.
-
alice
Painless middleware chaining for Go
Project mention: Web Development in Go: Middleware, Templating, Databases & Beyond | dev.to | 2021-01-27You can use a library like Alice to transform the above construct to a more readable form such as:
-
utron
A lightweight MVC framework for Go(Golang)
-
melody
:notes: Minimalist websocket framework for Go
-
Tollbooth
Simple middleware to rate-limit HTTP requests.
-
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-22It 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.
Index
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 |