Skip to content
This repository has been archived by the owner. It is now read-only.
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Abandoned. Contact me if you want to take over this project.


The only Mongrel2 Rack handler you'll ever need.

I wrote this because I wanted to learn Mongrel2, and I didn't like what was out there. I copy-pasted a lot of code from Colin Curtin's m2r project (, but I also changed and reorganized it into what I believe is a good setup for a proper rubygem.

How to use

  1. Get mongrel2 installed (

  2. Get your config for mongrel2 setup (see example directory)

  3. Add it to your Gemfile

    gem 'rack-mongrel2', '~> 0.2.0', :require => nil

  4. You also need some sort of JSON parsing library installed, like Yajl or JSON (gem i yajl-ruby or gem i json). json-jruby will work too

  5. Run Mongrel2

  6. Run your rails application

    RACK_MONGREL2_UUID= rails s Mongrel2

  7. Profit!

Check out the blog post too:

Advanced setup

Using custom send and receive socket values

The Mongrel2 rack handler defaults the receive socket to tcp:// and the send socket to tcp://

To use different values set the RACK_MONGREL2_RECV and RACK_MONGREL2_SEND environment variables. For example:

export RACK_MONGREL2_RECV=<mongrel2 handler send_spec value>
export RACK_MONGREL2_SEND=<mongrel2 handler recv_spec value>
export RACK_MONGREL2_UUID=<mongrel2 handler send_ident value>
rails server Mongrel2

If for example your Mongrel2 handler configuration contains:


Then you will need to start your Rails application using:

export RACK_MONGREL2_RECV=tcp://
export RACK_MONGREL2_SEND=tcp://
export RACK_MONGREL2_UUID=42ffdda3-d151-41b1-923f-899ef6fc530a
rails server Mongrel2


Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.


Copyright (c) 2010, 2011 Daniel Huckstep. See LICENSE for details.


Abandoned. Contact me if you want to take over this project.




No packages published