在Github中stars数最多的Go Web框架集合

8,792 阅读4分钟
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数众多,功能齐全。除了前六位以外,笔者还使用过macarontango ,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.

Benchmark (Round 3)the concurrency clients are 5000.

Latency (Round 3)Latency is the time of real processing time by web servers. The smaller is the better.

Allocs (Round 3)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:

benchmark pipelining (Round 2)

Concurrency Test

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

concurrency (Round 3)

Latency (Round 3)

Latency (Round 3)

If we enable http pipelining, test result as below:

concurrency pipelining(Round 2)