evanphx/puma — Issue #25: Ruby Implementations?
Author: meskyanichi
Created: 2012-01-06 00:58:03+00:00
State: open

I was wondering, while posting a comment on another issue:

**Was Puma developed for a specific Ruby implementation? What Ruby implementation do you recommend to use with Puma? Ruby 1.9.3? Rubinius? JRuby? Or any of them? What are the benefits of each?**

When concurrency comes to mind, I think of threads. Looking at Puma's help screen I see that it utilizes them. I would assume an implementation where the global interpreter lock isn't present would benefit the most from this app server, in which case that would mean either Rubinius or JRuby. (Not sure whether JRuby would work using a non-Java app server, would it?)

In the past I've tried to utilize Rubinius's threading capabilities using other Ruby App servers like Rainbows using the ThreadPool/Spawn strategy, but without success. The processes kept hanging or time out and I'm not sure how or why that happened. I eventually gave up on it. Someone then later pointed out that what we need a new app server that was built for concurrency/threading from the ground up because existing solutions weren't really capable enough. Today I see Puma and I'm wondering: "Is this it?" :)