Twiggy - AnyEvent HTTP server for PSGI
twiggy --listen :8080
twiggy -h for more details.
use Twiggy::Server; my $server = Twiggy::Server->new( host => $host, port => $port, ); $server->register_service($app); AE::cv->recv;
Twiggy is a lightweight and fast HTTP server with unique features such as:
Can run any PSGI applications. Fully supports psgi.nonblocking and psgi.streaming interfaces.
This server uses AnyEvent and runs in a non-blocking event loop, so it's best to run event-driven web applications that runs I/O bound jobs or delayed responses such as long-poll, WebSocket or streaming content (server push).
This software used to be called Plack::Server::AnyEvent but was renamed to Twiggy.
Fast header parser
Uses XS/C based HTTP header parser for the best performance. (optional, install the HTTP::Parser::XS module to enable it; see also Plack::HTTPParser for more information).
Lightweight and Fast
The memory required to run twiggy is 6MB and it can serve more than 4500 req/s with a single process on Perl 5.10 with MacBook Pro 13" late 2009.
Supports Server::Starter for hot deploy and graceful restarts.
To use it, instead of the usual:
plackup --server Twiggy --port 8111 app.psgi
install Server::Starter and use:
start_server --port 8111 -- plackup --server Twiggy app.psgi
The following environment variables are supported.
Set to true to enable debug messages from Twiggy.
This module is licensed under the same terms as Perl itself.