benchmark/*: updates for newer versions of Unicorn
[unicorn.git] / README
blob73bb6d732605e626b152147fb0b0891ef23e8ba0
1 = Unicorn: UNIX + LAN/localhost-only fork of Mongrel
3 Only run this behind a full-HTTP-request-buffering reverse proxy if
4 you're serving slow clients.  That said, nginx is the only reverse
5 proxy we know of that meets this requirement.
7 == Features
9 * process management: Unicorn will reap and restart workers that
10   die because of broken apps and there is no need to manage
11   multiple processes yourself.
13 * does not care if your application is thread-safe or not, workers
14   all run within their own isolated address space and only serve one
15   client at a time...
17 * able to listen on multiple interfaces, including UNIX sockets,
18   each worker process can also bind to a private port via the
19   after_fork hook for easy debugging.
21 * supports all Rack applications
23 * nginx-style binary re-execution without losing connections.
24   You can upgrade unicorn, your entire application, libraries
25   and even your Ruby interpreter as long as unicorn is
26   installed in the same path.
28 * before_fork and after_fork hooks in case your application
29   has special needs when dealing with forked processes.
31 * builtin log rotation via USR1 signal
33 * Ruby 1.9-compatible (at least the test cases all pass :>)
35 == License
37 Unicorn is copyright 2009 Eric Wong and contributors.
38 It is based on Mongrel:
40 Mongrel is copyright 2007 Zed A. Shaw and contributors. It is licensed
41 under the Ruby license and the GPL2. See the include LICENSE file for
42 details.
44 == Install
46 The library consists of a C extension so you'll need a C compiler or at
47 least a friend who can build it for you.
49 Finally, the source includes a setup.rb for those who hate RubyGems.
51 You can get the source via git via the following locations:
53   git://git.bogomips.org/unicorn.git
55   http://git.bogomips.org/unicorn.git
57 == Usage
59 Unicorn will look for the config.ru file used by rackup in APP_ROOT.
60 Optionally, it can use a config file specified by the --config-file/-c
61 command-line switch.
63 Unicorn should be capable of running all Rack applications.  Since this
64 is a preforking webserver, you do not have to worry about thread-safety
65 of your application or libraries. However, your Rack application may use
66 threads internally (and should even be able to continue running threads
67 after the request is complete).
69 == Contact
71 Newsgroup and mailing list coming, or it'll be a part of the Mongrel project...
73 Email Eric Wong at normalperson@yhbt.net for now.