h2. 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. h2(#amqp_gems_family). 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":http://github.com/ruby-amqp/amq-protocol takes care of encoding, decoding and framing. * One level above is "amq-client gem":http://github.com/ruby-amqp/amq-client that takes care of network I/O, provides uniform interface for various I/O libraries like "EventMachine":http://rubyeventmachine.com/, "cool.io":http://coolio.github.com/ 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":http://github.com/ruby-amqp/amqp or "bunny AMQP client":http://github.com/ruby-amqp/bunny h2. Adapters Currently implemented adapters: * "EventMachine":http://github.com/eventmachine/eventmachine * "cool.io":http://coolio.github.com/ h3. 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(tm) and is used by amqp gem starting with version 0.8.0. h3. 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(tm). h2. Installation amq-client is available from rubygems.org:
gem install amq-clientIf 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"
h2. Pre-prelease versions
Pre-release versions are available from rubygems.org:
gem install amq-client --preh2. See also * "API documentation":http://rdoc.info/github/ruby-amqp/amq-client/master/frames * "Examples":https://github.com/ruby-amqp/amq-client/tree/master/examples/ * "Jabber room for contributors":xmpp://amqp-dev@conf.netlab.cz * "Ruby AMQP mailing list":http://groups.google.com/group/ruby-amqp * "Issue tracker":http://github.com/ruby-amqp/amq-client/issues * "Continous integration server":http://travis-ci.org/#!/ruby-amqp/amq-client