Simple AMQP driver for Ruby/EventMachine. This library was tested primarily with RabbitMQ, although it should be compatible with any server implementing the AMQP 0-8 spec. To use with RabbitMQ, first run the server: hg clone http://hg.rabbitmq.com/rabbitmq-codegen hg clone http://hg.rabbitmq.com/rabbitmq-server cd rabbitmq-server make run To get started, refer to the various bundled examples: ruby examples/pingpong.rb # 1-1 communication using amq.direct ruby examples/clock.rb # 1-N communication using amq.fanout ruby examples/stocks.rb # 1-subscriber communication using amq.topic ruby examples/hashtable.rb # simple async rpc layer ruby examples/primes.rb 4 # parallelized prime number generation For more details into the lower level AMQP client API, run the simple client example: ruby examples/simple.rb Or refer to protocol/doc.txt, which enumerates packets sent between a server and client during a typical session, in both binary and decoded formats. To run the test suite: rake spec The lib/amqp/spec.rb file is generated automatically based on the AMQP specification. To generate it: rake codegen This project was inspired by py-amqplib, rabbitmq, qpid and rubbyt. Special thanks to Dmitriy Samovskiy, Ben Hood and Tony Garnock-Jones. Other AMQP resources: Servers: RabbitMQ (Rabbit Technologies, Erlang/OTP, MPL) http://rabbitmq.com OpenAMP (iMatrix, C, GPL2) http://openamq.org ActiveMQ (Apache Foundation, Java, apache2) http://activemq.apache.org/ John O'Hara's article on the history of AMQP: http://www.acmqueue.org/modules.php?name=Content&pa=showpage&pid=485 Barry Pederson's py-amqplib: http://barryp.org/software/py-amqplib/ Ben Hood's article on writing an AMQP client: http://hopper.squarespace.com/blog/2008/6/21/build-your-own-amqp-client.html Dmitriy Samovskiy's introduction to Ruby+QPid+RabbitMQ: http://somic-org.homelinux.org/blog/2008/06/24/ruby-amqp-rabbitmq-example/ Ben Hood's AMQP client in AS3: http://github.com/0x6e6562/as3-amqp RabbitMQ's protocol code generator: http://hg.rabbitmq.com/rabbitmq-codegen/ Jonahthan Conway's series on RabbitMQ and using it with Ruby/Merb: http://jaikoo.com/2008/3/20/daemonize-rabbitmq http://jaikoo.com/2008/3/14/oh-hai-rabbitmq http://jaikoo.com/2008/2/29/friday-round-up-2008-02-29 http://jaikoo.com/2007/9/4/didn-t-you-get-the-memo Messaging and distributed systems resources: A Critique of the Remote Procedure Call Paradigm http://www.cs.vu.nl/~ast/publications/euteco-1988.pdf A Note on Distributed Computing http://research.sun.com/techrep/1994/smli_tr-94-29.pdf Convenience Over Correctness http://steve.vinoski.net/pdf/IEEE-Convenience_Over_Correctness.pdf