SYNOPSIS

  corona --listen :9090 app.psgi

DESCRIPTION

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 \*(C`cede\*(C' 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 \s-1IO::AIO\s0) 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 \s-1AIO\s0 modules. Brilliantly fast.

This web server sets \*(C`psgi.multithread\*(C' env var on.

AUTHOR

Tatsuhiko Miyagawa

LICENSE

This module is licensed under the same terms as Perl itself.

RELATED TO Corona…

Coro Net::Server::Coro Coro::AIO