README

February 21, 2012 ยท View on GitHub

NAME Twiggy - AnyEvent HTTP server for PSGI (like Thin)

SYNOPSIS 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;

DESCRIPTION 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. See "NAMING" for details.

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.

NAMING Twiggy? Because it is like Thin http://code.macournoyer.com/thin/, Ruby's Rack web server using EventMachine. You know, Twiggy is thin :)

Why the cute name instead of more descriptive namespace? Are you on drugs? I'm sick of naming Perl software like HTTP::Server::PSGI::How::Its::Written::With::What::Module and people call it HSPHIWWWM on IRC. It's hard to say on speeches and newbies would ask questions what they stand for every day. That's crazy.

This module actually includes the longer alias and an empty subclass
AnyEvent::Server::PSGI for those who like to type more ::'s. It would
actually help you find this software by searching for *PSGI Server
AnyEvent* on CPAN, which i believe is a good thing.

Yes, maybe I'm on drugs. We'll see.

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

AUTHOR Tatsuhiko Miyagawa

Tokuhiro Matsuno

Yuval Kogman

Hideki Yamamura

Daisuke Maki

SEE ALSO Plack AnyEvent Tatsumaki