Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 105 lines (79 sloc) 3.69 kB
e4ae7eb @miyagawa Initial commit
authored
1 NAME
f165d4d @miyagawa rename the module to top-level namespace. See =head1 NAMING for details.
authored
2 Starman - High-performance preforking PSGI web server
e4ae7eb @miyagawa Initial commit
authored
3
4 SYNOPSIS
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
5 # Run app.psgi with the default settings
9b2c592 @miyagawa rename Nomo to Starman, while respecting the CPANism to prefix
authored
6 > starman
e4ae7eb @miyagawa Initial commit
authored
7
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
8 # run with Server::Starter
9b2c592 @miyagawa rename Nomo to Starman, while respecting the CPANism to prefix
authored
9 > start_server --port 127.0.0.1:80 -- starman --max-servers 32 myapp.psgi
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
10
11 # UNIX domain sockets
9b2c592 @miyagawa rename Nomo to Starman, while respecting the CPANism to prefix
authored
12 > starman --listen /tmp/starman.sock
e4ae7eb @miyagawa Initial commit
authored
13
14 DESCRIPTION
9b2c592 @miyagawa rename Nomo to Starman, while respecting the CPANism to prefix
authored
15 Starman is a PSGI perl web server that has unique features such as:
e4ae7eb @miyagawa Initial commit
authored
16
17 High Performance
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
18 Uses the fast XS/C HTTP header parser
e4ae7eb @miyagawa Initial commit
authored
19
20 Preforking
fcd26ee @miyagawa document signals. Enable graceful restart by default
authored
21 Spawns workers preforked like most high performance UNIX servers do.
9b2c592 @miyagawa rename Nomo to Starman, while respecting the CPANism to prefix
authored
22 Starman also reaps dead children and automatically restarts the
23 worker pool.
fcd26ee @miyagawa document signals. Enable graceful restart by default
authored
24
25 Signals
26 Supports "HUP" for graceful restarts, and "TTIN"/"TTOU" to
27 dynamically increase or decrease the number of worker processes.
3cc0590 @miyagawa Added ControlFreak support. Reworked wrapper/chain callback interface.
authored
28
e4ae7eb @miyagawa Initial commit
authored
29 Superdaemon aware
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
30 Supports Server::Starter for hot deploy and graceful restarts.
700ad42 @miyagawa docs
authored
31
fcd26ee @miyagawa document signals. Enable graceful restart by default
authored
32 Multiple interfaces and UNIX Domain Socket support
33 Able to listen on multiple intefaces including UNIX sockets.
e4ae7eb @miyagawa Initial commit
authored
34
53cca0a @miyagawa Display the master/worker in the process list. Document the memory fo…
authored
35 Small memory footprint
36 Preloading the applications enables copy-on-write friendly memory
9b2c592 @miyagawa rename Nomo to Starman, while respecting the CPANism to prefix
authored
37 management. Also, the minimum memory usage Starman requires for the
53cca0a @miyagawa Display the master/worker in the process list. Document the memory fo…
authored
38 master process is 7MB and children (workers) is less than 3.0MB.
39
e4ae7eb @miyagawa Initial commit
authored
40 PSGI compatible
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
41 Can run any PSGI applications and frameworks
3cc0590 @miyagawa Added ControlFreak support. Reworked wrapper/chain callback interface.
authored
42
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
43 HTTP/1.1 support
44 Supports chunked requests and responses, keep-alive and pipeline
45 requests.
e4ae7eb @miyagawa Initial commit
authored
46
3d42b4a @miyagawa docs
authored
47 PERFORMANCE
c0f9968 @miyagawa docs
authored
48 Here's a simple benchmark using "Hello.psgi".
3d42b4a @miyagawa docs
authored
49
9b2c592 @miyagawa rename Nomo to Starman, while respecting the CPANism to prefix
authored
50 -- server: Starman
e40c242 @miyagawa use HTTP::Parser::XS for the additional speedups.
authored
51 Requests per second: 6413.87 [#/sec] (mean)
3d42b4a @miyagawa docs
authored
52 -- server: AnyEvent
53 Requests per second: 3911.78 [#/sec] (mean)
54 -- server: AnyEvent::HTTPD
55 Requests per second: 2738.49 [#/sec] (mean)
56 -- server: Standalone
57 Requests per second: 1045.66 [#/sec] (mean)
58 -- server: Standalone (prefork)
59 Requests per second: 2792.99 [#/sec] (mean)
60 -- server: HTTP::Server::Simple
61 Requests per second: 1435.50 [#/sec] (mean)
62 -- server: Coro
63 Requests per second: 2332.00 [#/sec] (mean)
64 -- server: POE
65 Requests per second: 503.59 [#/sec] (mean)
66
c0f9968 @miyagawa docs
authored
67 This benchmark was processed with "ab -c 10 -t 1 -k" on MacBook Pro 13"
68 late 2009 model on Mac OS X 10.6.2 with perl 5.10.0. YMMV.
69
f165d4d @miyagawa rename the module to top-level namespace. See =head1 NAMING for details.
authored
70 NAMING
71 Starman?
72 The name Starman is taken from the song (*Star na Otoko*) by the
73 Japanese rock band Unicorn. It's also a power-up from Super Mario
74 Brothers and a character from the video game Earthbound.
75
c0f9968 @miyagawa docs
authored
76 Why the cute name instead of more descriptive namespace? Are you on drugs?
77 I'm sick of naming Perl software like
f165d4d @miyagawa rename the module to top-level namespace. See =head1 NAMING for details.
authored
78 HTTP::Server::PSGI::How::Its::Written::With::What::Module and people
c0f9968 @miyagawa docs
authored
79 call it HSSPHIWWWM on IRC. It's hard to say on speeches and newbies
80 would ask questions what they stand for every day. That's crazy.
f165d4d @miyagawa rename the module to top-level namespace. See =head1 NAMING for details.
authored
81
c0f9968 @miyagawa docs
authored
82 This module actually includes the longer alias and an empty subclass
f165d4d @miyagawa rename the module to top-level namespace. See =head1 NAMING for details.
authored
83 HTTP::Server::PSGI::Net::Server::PreFork for those who like to type more
84 ::'s. It would actually help you find this software by searching for
85 *PSGI Server Prefork* on CPAN, which i believe is a good thing.
3d42b4a @miyagawa docs
authored
86
c0f9968 @miyagawa docs
authored
87 Yes, maybe I'm on drugs. We'll see.
88
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
89 AUTHOR
90 Tatsuhiko Miyagawa <miyagawa@bulknews.net>
e4ae7eb @miyagawa Initial commit
authored
91
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
92 Andy Grundman wrote Catalyst::Engine::HTTP::Prefork, which this module
93 is heavily based on.
e4ae7eb @miyagawa Initial commit
authored
94
3d42b4a @miyagawa docs
authored
95 Kazuho Oku wrote Net::Server::SS::PreFork that makes it easy to add
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
96 Server::Starter support to this software.
e4ae7eb @miyagawa Initial commit
authored
97
98 LICENSE
99 This library is free software; you can redistribute it and/or modify it
100 under the same terms as Perl itself.
101
102 SEE ALSO
f8bdf60 @miyagawa Rewrote Nomo using Catalyst::Engine::HTTP::Prefork as a base code.
authored
103 Plack Catalyst::Engine::HTTP::Prefork Net::Server::Prefork
e4ae7eb @miyagawa Initial commit
authored
104
Something went wrong with that request. Please try again.