# \[ANN\] unicorn 5.0.0 - Rack HTTP server for fast clients and \*nix

**URL:** https://rubytalk.org/t/ann-unicorn-5-0-0-rack-http-server-for-fast-clients-and-nix/73291
**Category:** ruby-talk
**Created:** [1 November 2015 08:55 UTC](https://rubytalk.org/t/ann-unicorn-5-0-0-rack-http-server-for-fast-clients-and-nix/73291 "2015-11-01T08:55:59Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Eric\_Wong2](https://avatars.discourse-cdn.com/v4/letter/e/b9e5f3/32.png) [@Eric\_Wong2](https://rubytalk.org/u/Eric_Wong2)
#### Post date: [1 November 2015 08:55 UTC](https://rubytalk.org/t/ann-unicorn-5-0-0-rack-http-server-for-fast-clients-and-nix/73291/1 "2015-11-01T08:55:59Z")

</div>

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.

\* [http://unicorn.bogomips.org/](http://unicorn.bogomips.org/)  
\* public list: [unicorn-public@bogomips.org](mailto:unicorn-public@bogomips.org)  
\* mail archives: [http://bogomips.org/unicorn-public/](http://bogomips.org/unicorn-public/)  
\* git clone git://bogomips.org/unicorn.git  
\* [http://unicorn.bogomips.org/NEWS.atom.xml](http://unicorn.bogomips.org/NEWS.atom.xml)  
\* nntp://news.public-inbox.org/inbox.comp.lang.ruby.unicorn

Changes since 4.9.0:

unicorn 5.0.0 - most boring major release. EVER.

An evolutionary dead-end since its announcement[1] nearly six years  
ago, this old-fashioned preforker has had enough bugs and missteps  
that it's managed to hit version 5!

I wish I could say unicorn 5 is leaps and bounds better than 4, but  
it is not. This major version change allows us to drop some cruft  
and unused features which accumulated over the years, resulting in  
several kilobytes of memory saved[2]!

Compatibility:

\* The horrible, proprietary (:P) "Status:" response header is  
&nbsp;&nbsp;finally gone, saving at least 16 precious bytes in every HTTP  
&nbsp;&nbsp;response. This should make it easier to write custom HTTP clients  
&nbsp;&nbsp;which are compatible across all HTTP servers. It will hopefully  
&nbsp;&nbsp;make migrating between different Rack servers easier for new  
&nbsp;&nbsp;projects.

\* Ruby 1.8 support removed. Ruby 1.9.3 is currently the earliest  
&nbsp;&nbsp;supported version. However, expect minor, likely-unnoticeable  
&nbsp;&nbsp;performance regressions if you use Ruby 2.1 or earlier. Going  
&nbsp;&nbsp;forward, unicorn will favor the latest version (currently 2.2) of  
&nbsp;&nbsp;the mainline Ruby implementation, potentially sacrificing  
&nbsp;&nbsp;performance on older Rubies.

\* Some internal, undocumented features and APIs used by  
&nbsp;&nbsp;derivative servers are gone; removing bloat and slightly lowering  
&nbsp;&nbsp;memory use. We have never and will never endorse the use of any  
&nbsp;&nbsp;applications or middleware with a dependency on unicorn,  
&nbsp;&nbsp;applications should be written for Rack instead.  
&nbsp;&nbsp;Note: Rainbows! 5.0 will be released next week or so to be  
&nbsp;&nbsp;compatible with unicorn 5.x

New features:

\* sd\_listen\_fds(3) emulation added for systemd compatibility.  
&nbsp;&nbsp;You may now stop using PID files and other process monitoring  
&nbsp;&nbsp;software when using systemd.

> **···**
>
> --  
> EW
