diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-08-10 02:06:12 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2009-08-10 02:06:12 -0700 |
commit | c5fc250a7c7248166ed85e3468faea782c72ccf0 (patch) | |
tree | fe0e7708a9684295997858157109048eb66678de | |
parent | 55070052de44b1661af2e85516e08a4df473093d (diff) | |
download | unicorn-c5fc250a7c7248166ed85e3468faea782c72ccf0.tar.gz |
-rw-r--r-- | README | 21 | ||||
-rw-r--r-- | TODO | 10 |
2 files changed, 19 insertions, 12 deletions
@@ -3,16 +3,14 @@ == 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 or Rack. -* 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 planned. * 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 +18,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 +29,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,6 +45,10 @@ each worker process can also bind to a private port via the after_fork hook for easy debugging. +* *Development branch* Decodes chunked transfers on-the-fly, + this allows upload progress notification to be implemented as well + as being able to tunnel arbitrary stream-based protocols over HTTP. + == Versions {Stable v0.8.4}[http://git.bogomips.org/cgit/unicorn.git/tag/?id=v0.8.4] @@ -1,9 +1,15 @@ +* security audit, fuzz testing + +* performance audit + +* keepalive (1 second max) + pipelining support (Ragel bits already done) + * integration tests with nginx including bad client handling * manpages (why do so few Ruby executables come with proper manpages?) -* code cleanups (launchers) +* code cleanups -* Pure Ruby HTTP parser +* launchers - add stop/start/kill commands? * Rubinius support |