Need advice about which tool to choose?Ask the StackShare community!
Passenger vs Puma: What are the differences?
Passenger: A fast and robust web server and application server for Ruby, Python and Node.js. Phusion Passenger is a web server and application server, designed to be fast, robust and lightweight. It takes a lot of complexity out of deploying web apps, adds powerful enterprise-grade features that are useful in production, and makes administration much easier and less complex; Puma: A Modern, Concurrent Web Server for Ruby. Unlike other Ruby Webservers, Puma was built for speed and parallelism. Puma is a small library that provides a very fast and concurrent HTTP 1.1 server for Ruby web applications.
Passenger and Puma can be primarily classified as "Web Servers" tools.
"Nginx integration" is the primary reason why developers consider Passenger over the competitors, whereas "Easy" was stated as the key factor in picking Puma.
Passenger and Puma are both open source tools. It seems that Puma with 5.73K GitHub stars and 974 forks on GitHub has more adoption than Passenger with 4.4K GitHub stars and 506 GitHub forks.
Movielala, DSTLD, and Fab are some of the popular companies that use Passenger, whereas Puma is used by StackShare, Yammer, and Helpful. Passenger has a broader approval, being mentioned in 372 company stacks & 41 developers stacks; compared to Puma, which is listed in 73 company stacks and 29 developer stacks.
I have an integration service that pulls data from third party systems saves it and returns it to the user of the service. We can pull large data sets with the service and response JSON can go up to 5MB with gzip compression. I currently use Rails 6 and Ruby 2.7.2 and Puma web server. Slow clients tend to prevent other users from accessing the system. Am considering a switch to Unicorn.
Consider trying to use puma workers first. puma -w
basically. That will launch multiple puma processes to manage the requests, like unicorn, but also run threads within those processes. You can turn the number of workers and number of threads to find the right memory footprint / request per second balance.
Pros of Passenger
- Nginx integration43
- Great for rails36
- Fast web server21
- Free19
- Lightweight15
- Scalable14
- Rolling restarts13
- Multithreading10
- Out-of-process architecture9
- Low-bandwidth6
- Virtually infinitely scalable2
- Deployment error resistance2
- Mass deployment2
- High-latency2
- Many of its good features are only enterprise level1
- Apache integration1
- Secure1
- Asynchronous I/O1
- Multiple programming language support1
Pros of Puma
- Free4
- Convenient3
- Easy3
- Multithreaded2
- Consumes less memory than Unicorn2
- Default Rails server2
- First-class support for WebSockets2
- Lightweight1
- Fast1
Sign up to add or upvote prosMake informed product decisions
Cons of Passenger
- Cost (some features require paid/pro)0
Cons of Puma
- Uses `select` (limited client count)0