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
March Hare is not a young project. Extracted from a platform that transports more than a terabyte of data over RabbitMQ every day, it has been around as an open source project since mid-2011 and has reached 2.0 in late 2013.
It is also based on the RabbitMQ Java client, which is an officially supported client and is considered to be a reference implementation.
gem install march_hare
gem "march_hare", "~> 2.0.0"
MarchHare documentation guides are mostly complete.
API reference is available.
Supported Ruby Versions
March Hare supports JRuby 1.7+ in 1.9 and 1.8 modes.
Supported JDK Versions
The project is tested against OpenJDK 7, Oracle JDK 7 and is known to work well on OpenJDK 6 and Sun JDK 6.
CI is hosted by travis-ci.org
MIT, see LICENSE in the repository root
Theo Hultberg, Michael Klishin, 2011-2014.