Project Name | Stars | Forks | Description |
---|---|---|---|
beego | 12195 | 2810 | beego is an open-source, high-performance web framework for the Go programming language. |
gin | 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. |
martini | 9608 | 1015 | Classy web framework for Go |
revel | 8740 | 1158 | A high productivity, full-stack web framework for the Go language. |
echo | 8165 | 715 | High performance, minimalist Go web framework |
iris | 7544 | 794 | The fastest web framework for Go in (THIS) Earth. HTTP/2 Ready to GO. MVC when you need it. docs.iris-go.com |
httprouter | 5482 | 547 | A high performance HTTP request router that scales well |
fasthttp | 4880 | 440 | Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http |
mux | 4435 | 600 | A powerful URL router and dispatcher for golang. |
web.go | 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. |
go-json-rest | 2886 | 314 | A quick and easy way to setup a RESTful JSON API |
chi | 2409 | 158 | lightweight, idiomatic and composable router for building Go HTTP services |
go-restful | 2291 | 352 | package for building REST-style Web Services using Google Go |
goa | 2270 | 225 | Design-based APIs and microservices in Go |
macaron | 2020 | 185 | Package macaron is a high productive and modular web framework in Go. |
gizmo | 1897 | 122 | A Microservice Toolkit from The New York Times |
buffalo | 1600 | 107 | Rapid Web Development w/ Go |
go-swagger | 1448 | 295 | Swagger 2.0 implementation for go |
armor | 1261 | 31 | Uncomplicated, modern HTTP server |
web | 1233 | 91 | Go Router + Middleware. Your Contexts. |
pat | 1063 | 103 | A Sinatra style pattern muxer for Go’s net/http library |
bone | 1052 | 71 | Lightning Fast HTTP Multiplexer |
go-tigertonic | 956 | 77 | A Go framework for building JSON web services inspired by Dropwizard |
faygo | 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. |
lion | 745 | 39 | Lion is a fast HTTP router for building modern scalable modular REST APIs in Go |
tango | 622 | 91 | Micro & pluggable web framework for Go |
goji | 518 | 32 | Goji is a minimalistic and flexible HTTP request multiplexer for Go (golang) |
traffic | 515 | 20 | Sinatra inspired regexp/pattern mux and web framework for Go |
gongular | 380 | 10 | gongular is an HTTP Server Framework for developing APIs easily. |
gear | 364 | 40 | A lightweight, composable and high performance web service framework for Go. |
lars | 331 | 19 | Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. |
neo | 319 | 30 | Go Web Framework |
go-ozzo | 206 | 34 | ozzo-routing is a Go package that provides high performance and powerful HTTP routing capabilities for Web applications. |
golf | 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. |
ace | 160 | 21 | Blazing fast Go Web Framework |
gem | 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. |
zerver | 139 | 19 | a RESTful API framework |
siris | 132 | 15 | The community driven fork of Iris. The fastest web framework for Golang! |
fasthttp-routing | 129 | 13 | A fast and powerful routing package for fasthttp servers |
baa | 85 | 19 | an express Go web framework with routing, middleware, dependency injection, http context. |
gramework | 71 | 11 | The Good Framework |
route | 38 | 6 | HTTP request routing library and language |
pure | 37 | 4 | Tideland Go REST Server Library |
trygo | 23 | 12 | http and web services of framework for golang |
gorest | 23 | 1 | Tideland Go REST Server Library |
webgo | 15 | 2 | A very lightweight & simple web framework for Go |
orivil | 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: