Twiggy(3pm)

Twiggy3pm

Anyevent http server for psgi

Usage

  twiggy --listen :8080

See "twiggy -h" for more details.

  use Twiggy::Server;
  my $server = Twiggy::Server->new(
      host => $host,
      port => $port,
  );
  $server->register_service($app);
  AE::cv->recv;

Overview

Twiggy is a lightweight and fast HTTP server with unique features such as:

PSGI

Can run any PSGI applications. Fully supports psgi.nonblocking and psgi.streaming interfaces.

AnyEvent

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.

Superdaemon aware

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

Environment

The following environment variables are supported.

TWIGGY_DEBUG

Set to true to enable debug messages from Twiggy.

Releases

7 releases since Debian 7 (Wheezy); the text changed 3 times.

  1. 7
  2. 8
  3. 9–10
  4. 11–13

License

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

Author

Tatsuhiko Miyagawa

Tokuhiro Matsuno

Yuval Kogman

Hideki Yamamura

Daisuke Maki

From twiggy 0.1026+dfsg-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.