Puma is a simple, fast, threaded, and highly concurrent HTTP server for Ruby/Rack applications.
A unicorn is a magical weaponized HTTP server for Ruby.
"For example it looks like unicorn is a better choice on heroku than puma"
from question "Memory quota exceeded in my heroku deployed rails app"
"It uses less resources than unicorn but has more requirements to your code it better be thread-safe because puma is a threaded server"
from question "OS X: Development & Production Deployment for RoR with Apache and Passenger"
"Puma will tend to optimize itself by spawning more threads and its performance should range from no worse than unicorn in the pure cpu case to being vastly better than unicorn in the case of an app that sleeps a lot"
from question "What do multi-processes VS multi-threaded servers most benefit from?"