Unicorn (web server)

Last updated
Unicorn
Original author Eric Wong
Developer Unicorn developers
Initial releaseMarch 11, 2009;16 years ago (2009-03-11)
Stable release
6.1.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 25 December 2021;4 years ago (25 December 2021)
Repository yhbt.net/unicorn/
Written in Ruby
Operating system Cross-platform
Available inEnglish
Type Web server
License GPLv2+ or Ruby 1.8
Website yhbt.net/unicorn/ OOjs UI icon edit-ltr-progressive.svg

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

Contents

Architecture

Unicorn uses a master/worker architecture, where a master process forks worker processes and controls them. The application runs in a single thread. [2]

Reception and use

Unicorn was considered to be “one of the most popular servers for Rails”. [3] [2]

Twitter started to test Unicorn in 2010. [4]

This server is shipped with Discourse. Their system administrator Sam Saffron noted Unicorn was reliable, as it reaps unresponsive workers. [5]

Unicorn has inspired other projects like Gunicorn, a fork to run Python applications.

As of 2018, projects tend to favour Puma. [6] The Heroku hosting provider recommends since 2015 to migrate from Unicorn to Puma. [7] 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. [8] GitLab switched to Puma from Unicorn in 2020. [9]

References

  1. "Rack HTTP server for Unix and fast clients".
  2. 1 2 Fulton, Hal; Arko, André (11 February 2015). The Ruby Way: Solutions and Techniques in Ruby Programming. Addison-Wesley Professional. p. 566. ISBN   978-0321714633.
  3. Bylina, H.N. (2014). Ruby Programming Language. Ruby on Rails framework (PDF). XX International conference for students and young scientists «MODERN TECHNIQUE AND TECHNOLOGIES». Tomsk: IOP Publishing.
  4. "Unicorn Power". 30 March 2010.
  5. "Why did you move to runit + Unicorn". February 2015. Archived from the original on 2018-03-27. Retrieved 2018-03-26.
  6. "Category: Web Servers". The Ruby Toolbox. Retrieved 2022-06-29.
  7. "Puma is Now the Recommended Ruby Webserver". 23 January 2015.
  8. Pavese, Tommaso (21 December 2016). "Unicorn vs Puma: Rails server benchmarks". Deliveroo.engineering.
  9. "How we migrated application servers from Unicorn to Puma". GitLab. Retrieved 2022-01-24.