Unicorn (web server)
Original author(s) | Eric Wong |
---|---|
Developer(s) | Unicorn developers |
Initial release | March 11, 2009 |
Stable release | 6.1.0[1]
/ 25 December 2021 |
Repository | yhbt.net/unicorn/ |
Written in | Ruby |
Operating system | Cross-platform |
Available in | English |
Type | Web server |
License | GPLv2+ or Ruby 1.8 |
Website | yhbt |
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
[edit]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
[edit]Unicorn was considered as “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 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
[edit]- ^ "Rack HTTP server for Unix and fast clients".
- ^ a b Fulton, Hal; Arko, André (11 February 2015). The Ruby Way: Solutions and Techniques in Ruby Programming. Addison-Wesley Professional. p. 566. ISBN 978-0321714633.
- ^ 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.
- ^ "Unicorn Power". 30 March 2010.
- ^ "Why did you move to runit + Unicorn". February 2015.
- ^ "Category: Web Servers". The Ruby Toolbox. Retrieved 2022-06-29.
- ^ "Puma is Now the Recommended Ruby Webserver". 23 January 2015.
- ^ Pavese, Tommaso (21 December 2016). "Unicorn vs Puma: Rails server benchmarks". Deliveroo.engineering.
- ^ "How we migrated application servers from Unicorn to Puma". GitLab. Retrieved 2022-01-24.