こんにちは、鈴木です。
以前から気になっていた Yesod というフレームワークをインストールしてみました。
Yesod は Haskell で作られたフルスタックの Web アプリケーションフレームワークです。
まだ Haskell に詳しくないので、言語を学びながら Yesod を使っていきたいと思います。
What's Yesod?
公式サイトによると、Yesod はタイプセーフで RESTful なハイパフォーマンス Web アプリケーションを効率良く開発するためのフレームワークだそうです。
Why Yesod?
Yesod には以下の特徴があるそうです。
- 実行時エラーをコンパイル時エラーに
文字コード絡みの問題や XSS 対策のために、できるだけ型システムの力を活用する。 - 非同期化が簡単
計量グリーンスレッドとイベントベースのシステムコールを活用することで、書いたコードは特に苦労せずに非同期対応できる。 - スケーラブルでハイパフォーマンス
普通に書いたコードは良いパフォーマンスで動くが、さらに高速化するためにコンパイルされたコードをチューニングすることもできる。 - 軽量なシンタックス
シンプルな DSL でテンプレートや永続化、ルーティングなどを記述可能。
コンパイル時にチェックされるので、実行時エラーを防ぐことができる。
インストール
GHC (Glasgow Haskell Compiler) をインストールします。
1 2 |
# Debian 系の OS を使っているので apt-get です. sudo apt-get install ghc |
次に、haskell-platform をインストールします。
1 |
sudo apt-get install haskell-platform |
これで cabal コマンドが使用できるようになりますので、パッケージ情報を更新します。
1 |
cabal update |
次に yesod-platform と yesod-bin をインストールします。
1 2 |
cabal install yesod-platform cabal install yesod-bin |
インストールに失敗する場合は「--force-reinstall」オプションを付けて再インストールすると成功することもあるようです。
最後に、yesod コマンドなどは ~/.cabal/bin にインストールされるので、PATH に追加します。
1 |
export PATH=~/.cabal/bin:$PATH |
動作確認としてバージョンを表示します。
1 2 |
$ yesod version yesod-bin version: 1.2.0.1 |
問題無く実行できれば、Yesod のインストールは完了です。
プロジェクトの作成
プロジェクトを作成するには、以下のコマンドを実行します。
1 |
yesod init |
コマンドを実行するとプロジェクトの名前の入力を促されます。
1 2 3 4 5 6 |
Welcome to the Yesod scaffolder. I'm going to be creating a skeleton Yesod project for you. What do you want to call your project? We'll use this for the cabal name. Project name: |
ここではプロジェクト名を「hello-yesod」として進めます。
次はデータベースの種類の選択です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Yesod uses Persistent for its (you guessed it) persistence layer. This tool will build in either SQLite or PostgreSQL or MongoDB support for you. We recommend starting with SQLite: it has no dependencies. s = sqlite p = postgresql pf = postgresql + Fay (experimental) mongo = mongodb mysql = MySQL simple = no database, no auth url = Let me specify URL containing a site (advanced) So, what'll it be? |
今回はデータベースは使わないので、「simple」と入力します。
ここまででプロジェクトの作成は完了ですので、作成されたディレクトリに移動しましょう。
1 |
cd hello-yesod |
最後に依存パッケージをインストールします。
1 |
cabal install |
起動
サーバを起動するには、以下のコマンドを実行します。
1 |
yesod devel |
デフォルトでは 3000 ポートが使用されます(--port オプションでポートを指定できます)。
ブラウザで http://localhost:3000 にアクセスすると、以下のような画面が表示されます。
起動したサーバは Enter キーで終了できます。