.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Twiggy 3pm" .TH Twiggy 3pm "2012-02-21" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Twiggy \- AnyEvent HTTP server for PSGI (like Thin) .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& twiggy \-\-listen :8080 .Ve .PP See \f(CW\*(C`twiggy \-h\*(C'\fR for more details. .PP .Vb 1 \& use Twiggy::Server; \& \& my $server = Twiggy::Server\->new( \& host => $host, \& port => $port, \& ); \& $server\->register_service($app); \& \& AE::cv\->recv; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Twiggy is a lightweight and fast \s-1HTTP\s0 server with unique features such as: .IP "\s-1PSGI\s0" 4 .IX Item "PSGI" Can run any \s-1PSGI\s0 applications. Fully supports \fIpsgi.nonblocking\fR and \&\fIpsgi.streaming\fR interfaces. .IP "AnyEvent" 4 .IX Item "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). .Sp This software used to be called Plack::Server::AnyEvent but was renamed to Twiggy. See \*(L"\s-1NAMING\s0\*(R" for details. .IP "Fast header parser" 4 .IX Item "Fast header parser" Uses \s-1XS/C\s0 based \s-1HTTP\s0 header parser for the best performance. (optional, install the HTTP::Parser::XS module to enable it; see also Plack::HTTPParser for more information). .IP "Lightweight and Fast" 4 .IX Item "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. .IP "Superdaemon aware" 4 .IX Item "Superdaemon aware" Supports Server::Starter for hot deploy and graceful restarts. .Sp To use it, instead of the usual: .Sp .Vb 1 \& plackup \-\-server Twiggy \-\-port 8111 app.psgi .Ve .Sp install Server::Starter and use: .Sp .Vb 1 \& start_server \-\-port 8111 plackup \-\-server Twiggy app.psgi .Ve .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" The following environment variables are supported. .IP "\s-1TWIGGY_DEBUG\s0" 4 .IX Item "TWIGGY_DEBUG" Set to true to enable debug messages from Twiggy. .SH "NAMING" .IX Header "NAMING" .SS "Twiggy?" .IX Subsection "Twiggy?" Because it is like Thin , Ruby's Rack web server using EventMachine. You know, Twiggy is thin :) .SS "Why the cute name instead of more descriptive namespace? Are you on drugs?" .IX Subsection "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 \s-1HSPHIWWWM\s0 on \s-1IRC\s0. It's hard to say on speeches and newbies would ask questions what they stand for every day. That's crazy. .PP 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 \fI\s-1PSGI\s0 Server AnyEvent\fR on \s-1CPAN\s0, which i believe is a good thing. .PP Yes, maybe I'm on drugs. We'll see. .SH "LICENSE" .IX Header "LICENSE" This module is licensed under the same terms as Perl itself. .SH "AUTHOR" .IX Header "AUTHOR" Tatsuhiko Miyagawa .PP Tokuhiro Matsuno .PP Yuval Kogman .PP Hideki Yamamura .PP Daisuke Maki .SH "SEE ALSO" .IX Header "SEE ALSO" Plack AnyEvent Tatsumaki