Skip to content

Low-level AMQP 0.9.1 client which is supposed to back higher-level AMQP libraries like amqp gem or bunny

License

Notifications You must be signed in to change notification settings

unakatsuo/amq-client

 
 

Repository files navigation

About amq-client

amq-client is a fully-featured, low-level AMQP 0.9.1 client that runs on Ruby 1.8.7, 1.9.2, REE, Rubinius and JRuby.
It’s sweet spot is in serving as foundation for higher-level, more opinionated AMQP libraries.
It can be used directly by applications code when performance and access to
advanced AMQP protocol features is more important that API convenience.

How does amq-client relate to amqp gem, amq-protocol and libraries like bunny?

|--------------|      |-----------------------|      |----------------------|
| amq-protocol |      | amq-client            |      | amqp gem, bunny, etc |
|  - Encoding  | ===> |  - IO abstraction     | ===> |  - high-level API    |
|  - Decoding  |      |  - Low-level AMQP API |      |  - opinionated       |
|              |      |  - Framing            |      |                      |
|--------------|      |-----------------------|      |----------------------|

  • At the lowest level, amq-protocol gem takes care of encoding, decoding and framing.
  • One level above is amq-client gem that takes care of network I/O, provides uniform interface for
    various I/O libraries like EventMachine, cool.io or good old TCP sockets and implements
    AMQP protocol entities (queues, exchanges, channels and so on) with emphasis on access to every feature available over API convenience or
    conciseness.
  • Finally, end applications use libraries like amqp gem or bunny AMQP client

Adapters

Currently implemented adapters:

EventMachine adapter

At this point EventMachine adapter is feature-complete, well-tested, supports 5 Ruby implementations
(1.8.7, 1.9.2, JRuby, Rubinius, Ruby Enterprise Edition) plus Microsoft Windows™ and
is used by amqp gem starting with version 0.8.0.

cool.io adapter

cool.io adapter is on par with EventMachine but is not used by any popular libraries (that we know of).
Note that cool.io doesn’t work on JRuby and Microsoft Windows™.

Installation

amq-client is available from rubygems.org:

gem install amq-client

If you use Bundler and want to use the very latest version, add this to your Gemfile:


gem "amq-client", :git => "https://github.com/ruby-amqp/amq-client.git"

Pre-prelease versions

Pre-release versions are available from rubygems.org:

gem install amq-client --pre

See also

About

Low-level AMQP 0.9.1 client which is supposed to back higher-level AMQP libraries like amqp gem or bunny

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 99.3%
  • Shell 0.7%