Plack::Loader::GatewayCGIなるものを試作してみた

読了まで:約2分


Ruby on Rails の gateway.cgi 相当のモジュールを Plack::Loader のサブクラスとして実装してみた


前に [Plack::Server::GatewayCGI なるものを試作してみた]] んです、その後 Plack の開発を追っていたら、miyagawa さんがコミットメッセージで、 [rails の gateway.cgi のようなものは Plack::Loader のカテゴリがフィットするいう趣旨のことを言ってたので、前に書いたPlack::Server::GatewayCGIPlack::Loader::GatewayCGIとして実装しなおしてみました。

  • <https://gist.github.com/289556 https://gist.github.com/289556>

例によってコードは github へ見に行ってください。

今回の特徴としては、前はPlack::Server::AnyEventベースのバックエンドサーバに依存してたのが、今回はその依存がなくなり、Plack::Server::CoroとかPlack::Server::Standaloneとかが使えるようになりました。

今のところ、

  • Plack::Server::AnyEvent
  • Plack::Server::Coro
  • Plack::Server::POE
  • Plack::Server::ServerSimple
  • Plack::Server::Standalone

サーバに対応しています。

一応Plack::Server::CGIでも動きますが、駐在プロセスとかできないので、高速化は一切できません。

あとPlack::Server::FastCGI関しては、サーバのホストとポートの取得の仕方がわからなかったので、今のところ対応していません。誰かそのあたりのコードをプリーズ。

あ、それとPlack::Serverネームスペースが非推奨になって、Plack::Handler変わったはずなので、ここら辺これから Plack の開発がすすんでくると読み替える必要があるんで注意してください。

あとまた例によって今回書いたPlack::Loader::GatewayCGIプロトタイプなので、実際に実用しようと思うと、もうちょっとコードをリファクタリングする必要があると思います。

あ実用するにはまだまだって感じなので、あんまり使い道はない感じですが、ちょっと実験するぐらいなら使えるので、いろいろいじって見るのもいいかと思います。

以上Plack::Loader::GatewayCGI試作してみたという話でした。

アバターアイコン兼ロゴ

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。次に備えて待機中。

今は趣味でプログラミングをして生活しています。