Unicorn (web server)


Unicorn is a Rack HTTP server to serve Ruby web applications on UNIX environment. It is optimised to be used with nginx. It is based on now deprecated Mongrel 1.1.5 from 2008.

Architecture

Unicorn uses a master/worker architecture, where a master process forks to worker processes and control them. The application runs in a single thread.

Reception and use

Unicorn was considered as “one of the most popular servers for Rails”.
Twitter started to test Unicorn in 2010.
This server is shipped with Discourse. Their system administration expert Sam Saffron noted Unicorn was reliable, as it reaps unresponsive workers. GitLab also uses Unicorn.
Unicorn inspired other projects like Gunicorn, a fork to run Python applications.
As of 2018, projects tend to favour Puma. The Heroku hosting provider recommends since 2015 to migrate from Unicorn to Puma.. Deliveroo published a benchmark comparing the two servers and concluded “Puma performs better than Unicorn in all tests that were either heavily IO-bound or that interleaved IO and CPU work”, but that Unicorn was still slightly better performing in pure CPU situations.