Skip to content
Idiomatic, fast and well-maintained JRuby client for RabbitMQ
Branch: master
Clone or download
Latest commit 72799c1 Jul 9, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin/ci CI: provision latest Erlang and RabbitMQ from Bintray Jan 23, 2019
examples Don't mention MarchHare::Queue#subscribe(block:) Mar 10, 2019
lib 4.1.0 is out Jul 9, 2019
spec Wait longer for complete recovery to finish Jul 1, 2019
.gitignore Add spec/examples.txt to gitignore Sep 22, 2016
.rspec Automatically require spec_helper in .rspec file Sep 22, 2016
.travis.yml CI: Use jruby- Apr 10, 2019
.yardopts Continued attempt to make YARD work for us Jun 2, 2013 Update change log Jul 9, 2019
Gemfile Merge branch 'master' of Feb 13, 2017
LICENSE (c) year Apr 30, 2019
Rakefile Basic wrapping working May 19, 2011
march_hare.gemspec Rename to MarchHare Sep 11, 2013

March Hare, a JRuby RabbitMQ Client

March Hare is an idiomatic, fast and well-maintained (J)Ruby DSL on top of the RabbitMQ Java client. It strives to combine strong parts of the Java client with over 4 years of experience using and developing Ruby amqp gem and Bunny.

Why March Hare

  • Concurrency support on the JVM is excellent, with many tools & approaches available. Lets make use of it.
  • RabbitMQ Java client is rock solid and supports every RabbitMQ feature. Very nice.
  • It is screaming fast thanks to all the heavy duty being done in the pretty efficient & lightweight Java code.
  • It uses synchronous APIs where it makes sense and asynchronous APIs where it makes sense. Some other Ruby RabbitMQ clients only use one or the other.
  • amqp gem has certain amount of baggage it cannot drop because of backwards compatibility concerns. March Hare is a clean room design, much more open to radical new ideas.

What March Hare is not

March Hare is not

  • A replacement for the RabbitMQ Java client
  • An attempt to re-create 100% of the amqp gem API on top of the Java client
  • A "work queue" like Resque
  • A cure for cancer

Project Maturity

March Hare is not a young project. Extracted from production systems, it has been around as an open source project since 2011.

It is based on the RabbitMQ Java client, which is officially supported by the RabbitMQ team at Pivotal.

Installation, Dependency

With Rubygems

gem install march_hare

With Bundler

gem "march_hare", "~> 4.1"



MarchHare documentation guides are mostly complete.


Several code examples are available. Our test suite also has many code examples that demonstrate various parts of the API.


API reference is available.

Supported Ruby Versions

March Hare supports JRuby 9.0 or later.

Supported JDK Versions

March Hare requires JDK 8 or later.

Change Log


Continuous Integration

Continuous Integration status

CI is hosted by


You'll need a running RabbitMQ instance with all defaults and management plugin enabled on your local machine to run the specs.

To boot one via docker you can use:

docker run -p 5672:5672 -p 15672:15672 rabbitmq:3-management

And then you can run the specs using rspec:

bundle exec rspec


MIT, see LICENSE in the repository root


Theo Hultberg, Michael Klishin, 2011-2019.

You can’t perform that action at this time.