本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはhayajoさんで、テーマはWebアプリケーションフレームワーク「Mojolicious」です。
本稿のサンプルコードは、WEB+DB PRESS Vol.87のサポートサイトから入手できます。
Mojoliciousとは
MojoliciousはCatalystの作者であるSebastian Riedel氏によって作成されたPerl製のWebアプリケーションフレームワークです。
2008年のリリースから現在に至るまでこまめなリリースが続けられており、本稿執筆時点(2015年5月)のバージョンは6.11です。
Mojoliciousは主に次のような特徴を持っています。
プロトタイピングから大規模開発まで対応
Mojoliciousはコンポーネントごとにファイル、ディレクトリ構造を作成するフレームワークのほかに、Mojolicious::Lite
というプロトタイピングや小規模開発向けの、RubyのSinatraのようなマイクロWebフレームワークを用意しています。
そのためアプリケーションの規模によって複数の異なるフレームワークを使い分ける必要がなく、1つのフレームワークで幅広い開発に対応しています。
多数のデプロイをサポート
Mojoliciousアプリケーションは標準で組み込まれるWebサーバ機能のほかに、開発用、本番用のアプリケーションサーバが同梱されています。また、CGIやPSGIアプリケーション、リバースプロキシ配下での動作もサポートしています。
そのため手元の開発環境やクラウド、VPS(Virtual Private Server)、レンタルサーバなど、さまざまな環境に合わせて柔軟に運用できます。
Perlの標準モジュールのみで実装
MojoliciousはPerlの標準モジュール以外に依存するモジュールはありません(注1)。外部モジュールをインストールする必要がないため、Mojolicious自身のインストールにつまずくことはほとんどありません。
また、HTTPクライアントやロガー、テンプレートエンジン、XML/HTMLパーサなど、開発を助ける多数のモジュールが提供されています。そのためWebアプリケーションフレームワークとしてだけでなく、ポータビリティの高いユーティリティライブラリとしても活用できます。
Welcome to the Mojolicuous!
それではさっそくMojoliciousを使ってWebアプリケーションを実行してみましょう。
Mojoliciousのインストール
MojoliciousはCPANモジュールとして提供されているので、cpanm
コマンドで簡単にインストールできます。
インストールが完了するとmojo
コマンドが使用できます。mojo version
を実行してインストールされたMojoliciousのバージョンを確認してみましょう(図1)。
アプリケーションの生成
続いてアプリケーションをmojo generate lite_app
で生成します(図2)。コマンドの実行が完了するとカレントディレクトリにmyapp.pl
ファイルが生成されます。
アプリケーションの実行
生成されたアプリケーションはいくつかの方法で実行できます。ここではMojoliciousに同梱されるmorboコマンドを使用してアプリケーションを実行してみます(図3)。
図3を実行後、ブラウザでhttp://127.0.0.1:3000/
にアクセスしてしてください。画面に「Welcome to the Mojolicious real-time web framework!」と表示されていれば成功です。
<続きの(2)はこちら。>