about summary refs log tree commit homepage
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README71
1 files changed, 37 insertions, 34 deletions
diff --git a/README b/README
index 161a3e1..11a9a3c 100644
--- a/README
+++ b/README
@@ -1,18 +1,22 @@
-= Unicorn: Rack HTTP server for Unix, fast clients and nothing else
+= Unicorn: Rack HTTP server for fast clients and Unix
+
+Unicorn is an HTTP server for Rack applications designed to only serve
+fast clients on low-latency, high-bandwidth connections and take
+advantage of features in Unix/Unix-like kernels.  Slow clients should
+only be served by placing a reverse proxy capable of fully buffering
+both the the request and response in between Unicorn and slow clients.
 
 == Features
 
 * Designed for Rack, Unix, fast clients, and ease-of-debugging.  We
-  cut out all things that are better-supported by nginx or Rack.
+  cut out everything that is better supported by the operating system,
+  {nginx}[http://nginx.net/] or {Rack}[http://rack.rubyforge.org/].
 
-* Mostly written in Ruby, only the HTTP parser (stolen and trimmed
-  down from Mongrel) is written in C.  Unicorn is compatible with
-  both Ruby 1.8 and 1.9.  A pure-Ruby (but still Unix-only) version
-  is planned.
+* Compatible with both Ruby 1.8 and 1.9.  Rubinius support is in-progress.
 
 * Process management: Unicorn will reap and restart workers that
   die from broken apps.  There is no need to manage multiple processes
-  or ports yourself.  Unicorn can spawn and manage any fixed number of
+  or ports yourself.  Unicorn can spawn and manage any number of
   worker processes you choose to scale to your backend.
 
 * Load balancing is done entirely by the operating system kernel.
@@ -20,7 +24,7 @@
 
 * 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.
+  client at a time for maximum robustness.
 
 * Supports all Rack applications, along with pre-Rack versions of
   Ruby on Rails via a Rack wrapper.
@@ -31,10 +35,9 @@
   Unicorn also takes steps to ensure multi-line log entries from one
   request all stay within the same file.
 
-* nginx-style binary re-execution without losing connections.
+* nginx-style binary upgrades 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.
+  and even your Ruby interpreter without dropping clients.
 
 * before_fork and after_fork hooks in case your application
   has special needs when dealing with forked processes.  These
@@ -48,10 +51,16 @@
   each worker process can also bind to a private port via the
   after_fork hook for easy debugging.
 
+* Simple and easy Ruby DSL for configuration.
+
+* Decodes chunked transfers on-the-fly, thus allowing upload progress
+  notification to be implemented as well as being able to tunnel
+  arbitrary stream-based protocols over HTTP.
+
 == License
 
-Unicorn is copyright 2009 Eric Wong and contributors.
-It is based on Mongrel and carries the same license:
+Unicorn is copyright 2009 by all contributors (see logs in git).
+It is based on Mongrel and carries the same license.
 
 Mongrel is copyright 2007 Zed A. Shaw and contributors. It is licensed
 under the Ruby license and the GPL2. See the included LICENSE file for
@@ -61,15 +70,15 @@ Unicorn is 100% Free Software.
 
 == 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.
+The library consists of a C extension so you'll need a C compiler
+and Ruby development libraries/headers.
 
 You may download the tarball from the Mongrel project page on Rubyforge
 and run setup.rb after unpacking it:
 
 http://rubyforge.org/frs/?group_id=1306
 
-You may also install it via Rubygems on Rubyforge:
+You may also install it via RubyGems on Gemcutter:
 
   gem install unicorn
 
@@ -77,9 +86,7 @@ You can get the latest source via git from the following locations
 (these versions may not be stable):
 
   git://git.bogomips.org/unicorn.git
-  http://git.bogomips.org/unicorn.git
   git://repo.or.cz/unicorn.git (mirror)
-  http://repo.or.cz/r/unicorn.git (mirror)
 
 You may browse the code from the web and download the latest snapshot
 tarballs here:
@@ -87,6 +94,9 @@ tarballs here:
 * http://git.bogomips.org/cgit/unicorn.git (cgit)
 * http://repo.or.cz/w/unicorn.git (gitweb)
 
+See the HACKING guide on how to contribute and build prerelease gems
+from git.
+
 == Usage
 
 === non-Rails Rack applications
@@ -121,26 +131,19 @@ options.
 
 == Disclaimer
 
-Like the creatures themselves, production deployments of Unicorn are
-rare or even non-existent.  There is NO WARRANTY whatsoever if anything
-goes wrong, but let us know and we'll try our best to fix it.
+There is NO WARRANTY whatsoever if anything goes wrong, but
+{let us know}[link:ISSUES.html] and we'll try our best to fix it.
 
 Unicorn is designed to only serve fast clients either on the local host
 or a fast LAN.  See the PHILOSOPHY and DESIGN documents for more details
 regarding this.
 
-== Known Issues
-
-* WONTFIX: code reloading with Sinatra 0.3.2 (and likely older
-  versions) apps is broken.  The workaround is to force production
-  mode to disable code reloading in your Sinatra application:
-    set :env, :production
-  Since this is no longer an issue with Sinatra 0.9.x apps and only
-  affected non-production instances, this will not be fixed on our end.
-  Also remember we're capable of replacing the running binary without
-  dropping any connections regardless of framework :)
-
 == Contact
 
-Email Eric Wong at normalperson@yhbt.net for now.
-Newsgroup and mailing list maybe coming...
+All feedback (bug reports, user/development dicussion, patches, pull
+requests) go to the mailing list/newsgroup.  See the ISSUES document for
+information on the {mailing list}[mailto:mongrel-unicorn@rubyforge.org].
+
+For the latest on Unicorn releases, you may also finger us at
+unicorn@bogomips.org or check our NEWS page (and subscribe to our Atom
+feed).