Phusion Passenger 4.0 will support JRuby and Rubinus
Phusion Passenger, the Apache and NGINX module built for deploying Ruby and Python web applications, will gain support for JRuby and Rubinus in its next version. Phusion developers announced the enhancement in a blog posting in anticipation of a second beta release for Passenger 4.0. Phusion Passenger is also informally known as mod_rails and is the preferred deployment method for Ruby on Rails applications.
The first beta release had added support for multiple Ruby versions at the same time, incorporated event driven I/O internally and real-time response buffering, integrated a zero-copy architecture and rebuilt the system's ApplicationPool and spawning subsystems. But the developers also saw another need: with limited JRuby support in Mongrel and Thin and no JRuby support in Phusion Passenger, Unicorn or Goliath, users were having to use J2EE app servers. But, with the new 4.0 ApplicationPool and spawning subsystem, along with a migration to C++ based code, they were able to much more easily incorporate support for JRuby. Improvements to Rubinus also meant they could now also support that.
Phusion says the advantage to JRuby and Rubinus is that both can support multi-core concurrency. Although Passenger uses process spawning to take advantage of multiple cores, there are situations where a server may only be able to spawn one process and in those situations, JRuby or Rubinus will still allow the user to exploit multiple cores. They also have better performance as both have just-in-time compilation, but it should be noted that MRI Ruby still has best compatibility with the Ruby ecosystem.
The beta 2 of 4.0 is expected soon, but until then the stable version of Phusion Passenger's open source edition is version 3.0.17 which is available to download under an MIT licence. Phusion also offers a commercial enterprise version of Phusion Passenger which includes support and additional features.