Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Unofficial Unicorn Mirror. Updated semi-regularly.
Ruby Shell C

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


= Unicorn: UNIX + LAN/localhost-only fork of Mongrel

Only run this behind a full-HTTP-request-buffering reverse proxy if
you're serving slow clients.  That said, nginx is the only reverse
proxy we know of that meets this requirement.

== Features

* process management: Unicorn will reap and restart workers that
  die because of broken apps and there is no need to manage
  multiple processes yourself.

* does not care if your application is thread-safe or not, workers
  all run within their own isolated address space and only serve one
  client at a time...

* able to listen on multiple interfaces, including UNIX sockets,
  each worker process can also bind to a private port via the
  after_fork hook for easy debugging.

* supports all Rack applications

* nginx-style binary re-execution without losing connections.
  You can upgrade unicorn, your entire application, libraries
  and even your Ruby interpreter as long as unicorn is
  installed in the same path.

* before_fork and after_fork hooks in case your application
  has special needs when dealing with forked processes.

* builtin log rotation via USR1 signal

* Ruby 1.9-compatible (at least the test cases all pass :>)

== License

Unicorn is copyright 2009 Eric Wong and contributors.
It is based on Mongrel:

Mongrel is copyright 2007 Zed A. Shaw and contributors. It is licensed
under the Ruby license and the GPL2. See the include LICENSE file for

== Install

The library consists of a C extension so you'll need a C compiler or at
least a friend who can build it for you.

Finally, the source includes a setup.rb for those who hate RubyGems.

You can get the source via git via the following locations:


== Usage

Unicorn will look for the file used by rackup in APP_ROOT.
Optionally, it can use a config file specified by the --config-file/-c
command-line switch.

Unicorn should be capable of running all Rack applications.  Since this
is a preforking webserver, you do not have to worry about thread-safety
of your application or libraries. However, your Rack application may use
threads internally (and should even be able to continue running threads
after the request is complete).

== Contact

Newsgroup and mailing list coming, or it'll be a part of the Mongrel project...

Email Eric Wong at for now.
Something went wrong with that request. Please try again.