アルパカDiary Pro

はてなブログProではありません

Ark

むちゃくちゃよさげなフレームワークが登場。

Arkは,Perlで作られたWebアプリケーションフレームワーク(WAF)です。

Arkの特徴としては

  • Catalystに似たインターフェース
  • CGIFCGImod_perlなどさまざまな環境で実用的に動作する
  • CGI用モードの存在
  • 日本製であり,日本語ドキュメントが充実している

などが挙げられます。

ついに出た!最新Perlフレームワーク「Ark」徹底解


現在は大規模アプリを開発することもないんですけど
ちょっとしたものは作りたいなーと思っていて。
PerlのWAF事情を調べるとCatalystがほぼ標準っぽかったので勉強がてら使いたかったんですけど
CGIでは無理っぽいし覚えることも多そうだし。
結局、軽量フレームワークMENTAでちょこちょこ書いたりしてました。


そんな所でArkの登場。
Catalystも覚えたかったしCGIでも使えるしで、自分としては最高のWAFではないですか!

とりあえずさくらインターネットにインストール

こちらを参考にインストール。

$ wget http://cloud.github.com/downloads/typester/ark-perl/Ark-0.001000_001.tar.gz
$ tar zxvf Ark-0.001000_001.tar.gz
$ cd Ark-0.001000_001
$ cpan -t .

以下のように表示されたので、missingの部分を手動でインストールしてみた。
依存モジュールは結構多めですね。

[Core Features]
- Test::More                     ...loaded. (0.86)
- HTTP::Engine                   ...missing. (would need 0.001008)
- Mouse                          ...missing. (would need 0.21)
- Path::Class                    ...missing. (would need 0.16)
- URI                            ...loaded. (1.37)
- Text::SimpleTable              ...missing.
- Module::Pluggable::Object      ...loaded. (3.6)
- Data::Util                     ...missing.
- Class::Data::Inheritable       ...loaded. (0.08)
- HTML::Entities                 ...loaded. (3.57)
- Data::UUID                     ...missing.
- Digest::SHA1                   ...loaded. (2.11)
- Devel::StackTrace              ...missing.
- Class::Method::Modifiers::Fast ...missing.
- HTTP::Engine::Middleware       ...missing. (would need 0.13)
- MIME::Types                    ...loaded. (1.25)
- MouseX::Types::Path::Class     ...missing.
- Module::Setup                  ...missing.
- FindBin::libs                  ...missing.
[Support MicroTemplate template engine]
- Text::MicroTemplate            ...missing.
(以下cpan上でインストール)

install Path::Class
install Text::SimpleTable
force install Data::Util
install Data::UUID
install Devel::StackTrace
install Class::Method::Modifiers::Fast
install HTTP::Engine::Middleware
install MouseX::Types::Path::Class
install Module::Setup
install FindBin::libs
install Text::MicroTemplate

2回目ではDBIx::Classも入れろと言われたのですが、
うまくインストール出来なかったためとりあえず無視してArkインストール。

$ cpan -i .

うむ。うまくいった様子。

Hello toritori

こちらを参考にHello Worldに挑戦。

$ ark.pl newapp HelloWorld
$ cd HelloWorld
$ ark.pl server
HTTP::Engine::Interface::ServerSimple : You can connect to your server at http://0.0.0.0:4423/
Ctrl+C

(vi で表示する文言を「Hello toritoriに変更」)
vi lib/HelloWorld/Controller/Root.pm
$ ark.pl server
HTTP::Engine::Interface::ServerSimple : You can connect to your server at http://0.0.0.0:4423/

でけたー。


ちなみにサンプルアプリの方は「404 Not Found」で動きませんでした…なぜだ
まあハロワができたので良しとしよう。


というわけで今後かなり期待できそうなArk。
軽量フレームワークと銘打っていますが、インストール作業などを考えると軽量と中量の間くらい?*1
ベンチマーク取ってないのでパフォーマンスはまだよくわかりません。
とりあえずはさくらサーバ上で公開したいアプリケーションがいくつかありますので
Arkで開発してみようかなー?

*1:MENTAはフォルダコピペでインストール出来てしまいますしね