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
Adapters
Version 1.0 will feature 3 adapters:
- EventMachine (asynchronous)
- cool.io (asynchronous)
- TCP sockets (synchronous)
Installation
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'
Nightly Builds
You can always find nightly builds at gems.101ideas.cz. You can install them thusly:
wget http://gems.101ideas.cz/amq-client-nightly.gem gem install amq-client-nightly.gem