Project Name Stars Forks Description
12195 2810 beego is an open-source, high-performance web framework for the Go programming language.
11602 1357 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.
9608 1015 Classy web framework for Go
8740 1158 A high productivity, full-stack web framework for the Go language.
8165 715 High performance, minimalist Go web framework
7544 794 The fastest web framework for Go in (THIS) Earth. HTTP/2 Ready to GO. MVC when you need it. https://docs.iris-go.com
5482 547 A high performance HTTP request router that scales well
4880 440 Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
4435 600 A powerful URL router and dispatcher for golang.
2932 464 web.go is the simplest way to write web applications in the Go programming language. It's ideal for writing simple, performant backend web services.
2886 314 A quick and easy way to setup a RESTful JSON API
2409 158 lightweight, idiomatic and composable router for building Go HTTP services
2291 352 package for building REST-style Web Services using Google Go
2270 225 Design-based APIs and microservices in Go
2020 185 Package macaron is a high productive and modular web framework in Go.
1897 122 A Microservice Toolkit from The New York Times
1600 107 Rapid Web Development w/ Go
1448 295 Swagger 2.0 implementation for go
1261 31 Uncomplicated, modern HTTP server
1233 91 Go Router + Middleware. Your Contexts.
1063 103 A Sinatra style pattern muxer for Go's net/http library
1052 71 Lightning Fast HTTP Multiplexer
956 77 A Go framework for building JSON web services inspired by Dropwizard
873 137 Faygo is a fast and concise Go Web framework that can be used to develop high-performance web app(especially API) with fewer codes.
745 39 Lion is a fast HTTP router for building modern scalable modular REST APIs in Go
622 91 Micro & pluggable web framework for Go
518 32 Goji is a minimalistic and flexible HTTP request multiplexer for Go (golang)
515 20 Sinatra inspired regexp/pattern mux and web framework for Go
380 10 gongular is an HTTP Server Framework for developing APIs easily.
364 40 A lightweight, composable and high performance web service framework for Go.
331 19 Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks.
319 30 Go Web Framework
206 34 ozzo-routing is a Go package that provides high performance and powerful HTTP routing capabilities for Web applications.
200 16 A fast, simple and lightweight micro-web framework for Go, comes with powerful features and has no dependencies other than the Go Standard Library.
160 21 Blazing fast Go Web Framework
143 31 Gem is an easy to use and high performance web framework written in Go(golang), support HTTP/2, and provides leveled logger and frequently used middlewares.
139 19 a RESTful API framework
132 15 The community driven fork of Iris. The fastest web framework for Golang!
129 13 A fast and powerful routing package for fasthttp servers
85 19 an express Go web framework with routing, middleware, dependency injection, http context.
71 11 The Good Framework
38 6 HTTP request routing library and language
37 4 Tideland Go REST Server Library
23 12 http and web services of framework for golang
23 1 Tideland Go REST Server Library
15 2 A very lightweight & simple web framework for Go
11 5 Fast & Simple & Powerful Go Web Framework. Inspired by Symfony and Laravel.

    

   前六位都是Go语言世界中的老牌Web框架,Star数众多,功能齐全。除了前六位以外,笔者还使用过macaron,tango ,faygo这三个框架,都是国内优秀开源项目,功能非常齐全易用。在以上列表中还有一些小型Web框架的源代码非常适合阅读学习。最近一年,Go各类开源项目异常活跃,从以上Web框架的Star数和活跃度也可以从侧面反映Go语言正在云生态圈构建上发力。

下面是来自Go web framework benchmark的部分Go Web框架性能测试数据

 

Basic Test

The first test case is to mock 0 ms, 10 ms, 100 ms, 500 ms processing time in handlers.

the concurrency clients are 5000.

Latency is the time of real processing time by web servers. The smaller is the better.

Allocs is the heap allocations by web servers when test is running. The unit is MB. The smaller is the better.

If we enable http pipelining, test result as below:

Concurrency Test

In 30 ms processing time, the tets result for 100, 1000, 5000 clients is:

If we enable http pipelining, test result as below: