Corona - Coro based PSGI web server
corona --listen :9090 app.psgi
Corona is a Coro based Plack web server. It uses Net::Server::Coro under the
hood, which means we have coroutines (threads) for each socket, active
connections and a main loop.
Because it's Coro based your web application can actually block with I/O wait as
long as it yields when being blocked, to the other coroutine either explicitly
with "cede" or automatically (via Coro::* magic).
# your web application
use Coro::LWP;
my $content = LWP::Simple::get($url); # this yields to other threads when IO blocks
Corona also uses Coro::AIO (and IO::AIO) if available, to send the static
filehandle using
sendfile(2).
The simple benchmark shows this server gives 2000 requests per second in the
simple Hello World app, and 300 requests to serve 2MB photo files when used
with AIO modules. Brilliantly fast.
This web server sets "psgi.multithread" env var on.
Tatsuhiko Miyagawa
This module is licensed under the same terms as Perl itself.
Coro Net::Server::Coro Coro::AIO