tokuhirom's Blog

HTTP::Engine::Interface::Standalone の話

いつもどおりチラ裏ですけど。

HTTP::Engine::Interface::Standalone は Catalyst の スタンドアロンサーバをコピペしたところからはじまったのだけど、あんまメンテされてなくて、IE でファイルアップロードしたりするとうまくうごかなかったりして、それをなおすのにすごい時間かかったりして、なんかだるいかんじだった(たぶん kazuho さんがてつだってくれなかったら、さらに時間かかってたとおもう。なんか keep-alive んときだかに 2 byte 余計なバイトがついてくるとかだったかな)し、別に開発用にしかつかってなかったし、そもそも Interface::ServerSimple と用途かぶってるし、いらなくね?っていうことで消すことにしたのが数年前のことで、Plack がでてきたから pod を最近かきかえた、という話。なので、Standalone が out dated なことと、Plack がでてきたことの間にはなんの関係もない。

で、HTTP::Engine のときはスタンドアロンサーバのメンテとかあきらめてたんだけど、速い httpd を書ける人がいて、perl でかいた httpd で速いので本番で運用できるレベルのを書きたいっていいだして、それがまあ id:kazuhooku さんなわけですが、kazuho さんと miyagawa さんがモリモリかいて、実用レベルのものができあがった、という。で、これが HTTP::Server::Simple よりいい出来なので、これを Interface::Standalone のかわりに suggest したという具合(HTTP::Server::SImple はコードがよみづらいのと、速度が HTTP::Server::PSGI におとる)。

で、そのへんの軌跡は↓このへんにのってる。keepalive まわりをがんばってたけど翌々日にあきらめて deprecate してる。
http://github.com/http-engine/HTTP-Engine/commits/master/lib/HTTP/Engine/Interface/Standalone.pm

【追記】
でもがんばって書いたやつは捨てられて、Cat::Engine::Standalone::Prefork だかをベースにかきなおされて、それが Starman になってる。とはいえ高速化のノウハウはいきてるので、無意味だったということではないし、HTTP::Parser::XS とかはそのままつかわれてる。

【追記】
がんばってかいたやつは HTTP::Server::PSGI としてそのままいきてた。Plack のデフォルトのまま。Starman ができたから消えたとおもってたけど、いきてた。今後もたぶん生きつづけるのではないかという話。