Webフレームワークを作ってみたいと思いつつ、しっかり作る時間もないので、既存の物をまとめてセットにしたテンプレート的なものをまず作成し、必要に応じてミドルウェアの自作や置き換えを考えることにしました。
まず、URLのディスパッチや実際のWebページを表示する機能を提供するフレームワークについて調べました。
大物としてはrevel等が存在するのですが、今後入れ替え等を行う可能性を考えると、小機能なものを利用した方が良いと考え、候補から外すことにしました。
その結果、Negroni、Gin、Gojiの3つが有望そうだと感じたのですが、今一良い比較が無かったので、簡単な比較を行いました。なお、2015/05/06時点の情報です。
基礎情報
名称 | Negroni | Goji | Gin |
ライセンス | MIT | MIT | MIT |
コントリビューター | 23人 | 14人 | 55人 |
Watch | 141人 | 115人 | 175人 |
Star | 2441人 | 2306人 | 2769人 |
タイプ | Web Library | Web Framework | Web Framework |
簡易説明 | net/httpのHandlerの前後にミドルウェアを実行する機能を追加することで、機能拡張を行うためのライブラリ。 基本的にそれ以外の機能はほとんど存在せず、必要なミドルウェアを別途探してきてnegroniと共に導入することになる。 構造が簡単なので、net/httpに対応しているミドルウェアなら簡単に併用できる点が強み。 | net/http準拠のWebフレームワークで、URLディスパッチャー、ミドルウェア、Context機能等の基本的な機能を持っている。高速なことが売り。 | net/httpとは異なるWebフレームワークで、URLディスパッチャー、ミドルウェア等の基本機能以外にも機能を持っている。高速なことと、企業が利用していることが売り。 |
と言うことで、色々なミドルウェアを組み合わせる、接着剤のような機能を求めるならNegroni、そうでなければGojiかGinのどちらかでしょうか。
Gojiの場合、net/http準拠な分、他のミドルウェアとも相性が良さそうです。
Ginの場合、開発体制がGojiに比べると潤沢なので、Gin自身で一つのエコシステムを作れるかもしれません。Watch数やStar数を見ても、Gojiより人気なようです。
0 件のコメント:
コメントを投稿