LoginSignup
18
15

More than 5 years have passed since last update.

Sinatra風の超高速マイクロフレームワーク - Kemal:事始め

Last updated at Posted at 2015-12-23

15321198.png

Kemalをご存知でしょうか?KemalはCrystalSinatra風の超高速マイクロフレームワークらしいです。

今回は、公式のチュートリアルをやってみたのでご紹介します。では、いきましょう!

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はこんなのです。

スクリーンショット 2015-12-23 22.51.52.png

$ ./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風のシンタックスで結構いい感じだと思うので、今後も動向に注目していきたいです。

18
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
15