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
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
- A replacement for Bunny, the most popular Ruby RabbitMQ client
- A long running "work queue" service
March Hare has been around since 2011 and can be considered a mature library.
It is based on the RabbitMQ Java client, which is officially
supported by the RabbitMQ team at VMware.
gem install march_hare
gem "march_hare", "~> 4.3"
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.
CI is hosted by travis-ci.org
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
bundle exec rspec
MIT, see LICENSE in the repository root
Theo Hultberg, Michael Klishin, 2011-2020.