Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ruby-amqp/march_hare

Idiomatic, fast and well-maintained JRuby client for RabbitMQ
https://github.com/ruby-amqp/march_hare

amqp0-9-1 jruby messaging rabbitmq ruby

Last synced: about 1 month ago
JSON representation

Idiomatic, fast and well-maintained JRuby client for RabbitMQ

Awesome Lists containing this project

README

        

# 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](http://www.rabbitmq.com/api-guide.html). It strives to combine
strong parts of the Java client with over 4 years of experience using and developing [Ruby amqp gem](http://rubyamqp.info)
and [Bunny](http://rubybunny.info).

## 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](https://github.com/ruby-amqp)
only use one or the other.
* [amqp gem](https://github.com/ruby-amqp/amqp) 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

## Project Maturity

March Hare has been around since 2011 and can be considered a mature library.

It is based on the [RabbitMQ Java client](https://www.rabbitmq.com/java-client.html), which is officially
supported by the [RabbitMQ team at VMware](https://github.com/rabbitmq/).

## Installation, Dependency

### With Rubygems

``` shell
gem install march_hare
```

### With Bundler

``` ruby
gem "march_hare", "~> 4.5"
```

## Documentation

### Guides

[MarchHare documentation guides](https://github.com/ruby-amqp/march_hare/tree/master/docs/guides) are now
a part of this repository and can be read directly on GitHub.

### Examples

Several [code examples](./examples) are available. Our [test suite](./spec/higher_level_api/integration) also has many code examples
that demonstrate various parts of the API.

## Supported Ruby Versions

March Hare supports JRuby 9.0 or later.

## Supported JDK Versions

March Hare requires JDK 8 or later.

## Change Log

See [ChangeLog.md](ChangeLog.md).

## Continuous Integration

[![Continuous Integration status](https://secure.travis-ci.org/ruby-amqp/march_hare.svg)](http://travis-ci.org/ruby-amqp/march_hare)

CI is hosted by [travis-ci.org](http://travis-ci.org)

## Testing

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:

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

And then you can run the specs using `rspec`:

```bash
bundle exec rspec
```

## License

MIT, see LICENSE in the repository root

## Copyright

(c) 2011-2013 Theo Hultberg
(c) 2013-2022 Michael S. Klishin and contributors