Skip to content
/ Twiggy Public
forked from miyagawa/Twiggy

AnyEvent based non-blocking PSGI web server (like Thin)

Notifications You must be signed in to change notification settings

vti/Twiggy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

AnyEvent based non-blocking PSGI web server (like Thin)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 56.7%
  • Perl 43.3%