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
- 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.
gem install march_hare
gem "march_hare", "~> 4.2"
MarchHare documentation guides are mostly complete.
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.