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.
What is Passenger?
What is Puma?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
Sign up to get full access to all the companiesMake informed product decisions
What tools integrate with Puma?
Sign up to get full access to all the tool integrationsMake informed product decisions
We switched from Unicorn (process model) to Puma (threaded model) to decrease the memory footprint of our Rails production web server. Memory indeed dropped from 6GB to only 1GB!
We just had to decrease our worker count and increase our thread count instead. Performance (response time and throughput) remained the same, if not slightly better. We had no thread-safety errors, which was good.
Free bonus points are:
- Requests are blazing fast on our dev and staging environments!
- Puma has first-class support for WebSockets, so we know for sure that Rails ActionCable or GraphQL subscriptions will work great.
- Being on Puma makes us even more "default Rails"-compliant since it is the default Rails web server these days.
"deploy + forget" application deployment with good default configuration.