Help us understand the problem. What is going on with this article?

Go言語Webフレームワークランキング

More than 1 year has passed since last update.

Go言語のWebフレームワークをGitHubのスター数が多い順に抽出してランキング化しました。

抽出条件

2019/01/06 00:00 時点でスター数1000以上のGo言語のリポジトリを対象に、以下キーワードで検索しHITしたリポジトリをランキング化しました。

検索とソートはGitHub REST API v3を利用しました。
手順を以下記事で紹介していますので、様々な条件でランキング作成に活用して頂けますと嬉しいです。
GitHubリポジトリのスター数でOSSランキング作成

検索キーワードは以下です。

カテゴリ 検索キーワード
Webフレームワーク "web framework"
RESTフレームワーク "rest"
router(, multiplexer, mux ) "router"
マイクロサービス "micro" or "microservice" (※1)

(※1) "micro"だけで十分そうだが、単語一致でHITするっぽいので"microservice"も追加している

なお、筆者の独断でノイズ(目的に沿わないと判断したリポジトリ)は削っています、予めご了承下さい。

それではランキングの発表です!

Webフレームワーク

ginが人気です。beegoも後続を引き離しています。
3位から6位まで群雄割拠の様相です。

rank repository stars description
1 🥇 gin-gonic/gin 23406 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.
2 🥈 astaxie/beego 18465 beego is an open-source, high-performance web framework
for the Go programming language.
3 🥉 kataras/iris 13285 The fastest backend community-driven web framework
on (THIS) Earth.
HTTP/2, MVC and more.
Can your favourite web framework do that?
👉 http://bit.ly/iriscandothat1 or
even http://bit.ly/iriscandothat2
4 labstack/echo 12565 High performance, minimalist Go web framework
5 revel/revel 10638 A high productivity, full-stack
web framework for the Go language.
6 go-martini/martini 10411 Classy web framework for Go
7 gobuffalo/buffalo 3783 Rapid Web Development w/ Go
8 zenazn/goji 3490 Goji is a minimalistic web framework for Golang
that's high in antioxidants.
9 hoisie/web 3396 The easiest way to create web applications with Go
10 go-macaron/macaron 2626 Package macaron is a high productive
and modular web framework in Go.
11 gernest/utron 2105 A lightweight MVC framework for Go(Golang)
12 henrylee2cn/faygo 1333 Faygo is a fast and concise Go Web framework that
can be used to develop high-performance
web app(especially API) with fewer codes.
Just define a struct handler, faygo will automatically bind/verify
the request parameters and generate the online API doc.

RESTフレームワーク

REST(ful)に特化しているフレームワークは少ないようですね。

rank repository stars description
1 🥇 ant0ine/go-json-rest 3223 A quick and easy way to setup a RESTful JSON API
2 🥈 emicklei/go-restful 3049 package for building REST-style Web Services using Google Go

router(, multiplexer, mux )

こちらは思いの外、たくさん抽出されました。
ルーター(URLとコントローラのマッピング機能)を提供するフレームワークです。
気軽に小さく開発を始めるのに良いかもしれません。

rank repository stars description
1 🥇 julienschmidt/httprouter 8374 A high performance HTTP request router that scales well
2 🥈 gorilla/mux 7869 A powerful URL router and dispatcher for golang.
3 🥉 go-chi/chi 4770 lightweight, idiomatic and composable router for
building Go HTTP services
4 gocraft/web 1352 Go Router + Middleware. Your Contexts.
5 zalando/skipper 1328 An HTTP router and reverse proxy for
service composition, including use cases like Kubernetes Ingress
6 devopsfaith/krakend 1128 Ultra performant API Gateway with middlewares
7 go-zoo/bone 1184 Lightning Fast HTTP Multiplexer

マイクロサービス

最後に、昨今のトレンドとなっているマイクロサービスです。
go-kitが圧倒しています。
2016年からリリースが続いているgo-kitgoaは日本語の紹介記事も散見されますので導入しやすそうです。

go-microは英語記事を含めても紹介記事はあまり見当たません、導入のハードルが高いかもしれません。
比較的後発(2017年6月にFirst release)のようですが、スター数が多い理由は正直謎です(詳しい方がいらっしゃましたら教えて頂けると助かります)。

rank repository stars description
1 🥇 go-kit/kit 12311 A standard library for microservices.
2 🥈 micro/go-micro 5004 A microservice framework
3 🥉 goadesign/goa 3193 Design-based APIs and microservices in Go
4 NYTimes/gizmo 2511 A Microservice Toolkit from The New York Times
5 koding/kite 2242 Micro-service framework in Go
6 TarsCloud/TarsGo 1386 A high performance microservice framework in golang.
A linux foundation project.
7 devfeel/dotweb 1105 Simple and easy go web micro framework

まとめ

本記事では、Go言語のWebフレームワークを「スター数」という指標でランキング化してみました。
スター数以外にもコミュニティの活発度、機能性や性能など、選定のための指標は他にもあります、
そんな指標の1つとして本ランキングがお役に立てましたら幸いです。

「こんな抽出条件はどう?」「このOSSが抽出されていない」等のご指摘やアドバイスがありましたら是非コメントして頂けますと幸いです。

loftkun
❤piano 🎵spitz 🎮shogi 1st grade 🎸IBM ex Yahoo 🎹Minikube contributer ☁CNDF2020 Committee 💻Lecturer at college lab 🎤http://speakerdeck.com/loftkun 🐗my opinions are my own
https://twitter.com/loftkun
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away