Kemalをご存知でしょうか?KemalはCrystal製Sinatra風の超高速マイクロフレームワークらしいです。
今回は、公式のチュートリアルをやってみたのでご紹介します。では、いきましょう!
Crystalインストール
Crystalを入れていない人はまずこちらから。
$ brew update
$ brew install crystal-lang
または、crenvでもいいと思います。
インストールが終わったら、バージョンを確認してみましょう。
$ crystal -v
Crystal 0.9.1 (Fri Oct 30 13:49:46 UTC 2015)
これで準備は整いました。
Kemalインストール
$ crystal init app your_app
$ cd your_app
shard.yml
ができていると思うので、以下の内容を追加してください。
dependencies:
kemal:
github: sdogruyol/kemal
branch: master
そうしたら、以下のコマンドを実行します。ちなみに、ShardsはCrystalのパッケージマネージャーです。
$ shards install
これで、Kemalが使えるようになりました。
動かす
src/your_app.cr
を編集しましょう。
require "kemal"
get "/" do
"Hello World!"
end
そしたら、以下のコマンドでビルド&実行です!
$ crystal build --release src/your_app.cr
$ ./your_app
http://0.0.0.0:3000にアクセスすると、「Hello World!」と表示されていると思います。
改めてコード見ると本当にRubyっぽい...というかそのままって感じですね。
ちなみに、404はこんなのです。
$ ./your_app
[development] Kemal is ready to lead at http://0.0.0.0:3000
2015-12-23 22:53:56 +0900 | 200 | GET / - (856µs)
2015-12-23 22:54:00 +0900 | 404 | GET /hoge - (40µs)
2015-12-23 22:54:00 +0900 | 200 | GET /__kemal__/404.png - (165µs)
(かわいい)
さいごに
どうでしたか?個人的には404がお気に入りです。
余談ですが、本当はAmethystの記事を書こうと思っていました。ただ、やってみると色々と問題がありやめてしまいました・・・。そんな中、Crystalshardsを眺めていると、上から3番目にKemalがあったので記事にしようと思ったわけです。
CrystalはRuby風のシンタックスで結構いい感じだと思うので、今後も動向に注目していきたいです。