https://github.com/naoina/kocha
http://naoina.github.io/kocha/

ドキュメントを書いたら区切りとして v0.1 を出そうと決めており、Google先生のご指導の元、やっとのことでドキュメントが書けましたので v0.1 と相成りました。
v0.1 リリースと書いていますが、git のタグを打った後すぐコミットとかしてるので本当にただの区切りで、それ以上の意味はありません。

Kochaとは

Go言語で書かれているウェブアプリケーションフレームワークです。読みは 紅茶 です。

コンセプト

  • とにかく便利に
  • 独自記法の設定ファイルを使わない
  • 1 つのバイナリで完結
  • 速度

とにかく便利に

これを一番念頭に置いて作っています。設計の美しさや意味的な正しさよりも、とにかく便利に使えることを目指しています。
そのために Ruby on Rails ライクなコマンドラインツールも提供していて、1 行もコードを書くことなくサンプルが動きます。
現在はまだ色々足りてないものがありますが、今後便利そうなものは積極的に取り込んでいく方針です。

独自記法の設定ファイルを使わない

Kocha は全ての設定がただの Go のソースファイルです。
独自記法の設定ファイルは好きなように構文を作れるので柔軟ではありますが、それと引き換えに学習コストが飛躍的に上がります。
また、独自記法はそれだけのために作られるものなのでつぶしが利きませんし、誰もそんなものを覚えたくはありません。

1 つのバイナリで完結

Go で WAF を作ろうと思った動機のひとつです。
昨今の WAF はデプロイのために全てのコードベースをサーバー上に上げるものが大半です。また、既存の Go の WAF でもテンプレートや設定ファイルも一緒にデプロイしなければならなかったりします。
せっかくバイナリにコンパイルされるのですから、それだけで完結できるに越した事はないと考えました。
ですので Kocha では kocha build -a prod などとすれば、テンプレートや設定ファイルはおろか、静的ファイルまでも全て 1 つのバイナリに内包できるようにしました。
デプロイはビルドされたバイナリだけをサーバーに置けば完了します。

速度

速さは正義です。現時点では一部しかベンチマークを取ってませんが、基本的にはベンチマークを取って速い実装を採用するという方針です。
ここら辺はこれから頑張るといった感じです。

今後について

GitHub の issues に色々上げています。まだ色々とやることや、したいことがあるので、まだ飽きないと思います。多分。

あとほどんどの人にはどうでもいいと思いますが、Windows でもちゃんと動きます。