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 its 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::*
# your web application
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.