Help us understand the problem. What is going on with this article?

Porboという開発用PSGIサーバを作った

More than 5 years have passed since last update.

概要

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

とりあえずこれでドッグフードを食べながら改善していきたい。

uchiko
エンジニアです。最近はAWSでサーバレス開発しています。 Go/AWS/Docker/TypeScript/Processing。AWS認定システムアーキテクトプロフェッショナル保持。全社員フルリモートワークの会社で働いています。愛知県岡崎市在住。 Twitter: @memememomo
https://github.com/memememomo
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした