Skip to content
Coro based high-performance, asynchronous PSGI web server
Perl Perl6
Find file
Latest commit 330d959 Dec 25, 2015 @miyagawa add travis #4
Failed to load latest commit information.
bin Implemented corona -v Mar 28, 2010
lib Display banner on startup #3 Jul 23, 2011
xt convert to Milla Dec 25, 2015
.gitignore convert to Milla Dec 25, 2015
LICENSE convert to Milla Dec 25, 2015
META.json convert to Milla Dec 25, 2015 convert to Milla Dec 25, 2015
dist.ini convert to Milla Dec 25, 2015


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

Something went wrong with that request. Please try again.