概要
Mojoliciousに付随しているMorboのような開発用サーバが欲しかったので、
勉強がてらにPorboという開発用PSGIサーバを作った。
以下のような条件を全て満たす開発用サーバが欲しかった。
- シングルプロセスで複数のポートをListenできる(HTTP::Server::PSGIだとできない)
- SSLに対応している(Twiggyだと対応していない)
- Plack::Middlewareが使える(Morboだと使えない)
個人的にこれらの機能が備わっていると開発が捗る。
Porboの中身
複数ポートをListenするからイベント駆動が必要そうだな、
ということでAnyEventを使用して書いた。
TwiggyやHTTP::Sever::PSGIを読んで、見よう見まねで作ったので、
AnyEventの仕様や動作などをまだよく理解できておらず勉強中。
テストはTwiggyのものを流用させていただき、
ひとまずテストが通るようになるまで修正をした。
コードレビューしていただける方、募集中です。
https://github.com/memememomo/Porbo
使い方
以下のコマンドでインストール。
$ git@github.com:memememomo/Porbo.git
$ cd Porbo
$ cpanm .
以下のコマンドで起動。
$ plackup -s Porbo --listen http://127.0.0.1:3000/ app.psgi
SSLを使用する場合は、認証ファイルなどを用意して、以下のように指定する。
$ plackup -s Porbo \
--listen http://127.0.0.1:3000 \
--listen https://127.0.0.1:3001 \
--ssl-key-file server.key \
--ssl-cert-file server.crt \
app.psgi
とりあえずこれでドッグフードを食べながら改善していきたい。