Skip to content

AMQP 0.9.1 protocol serialization and deserialization implementation for Ruby (2.0+)

License

Notifications You must be signed in to change notification settings

ruby-amqp/amq-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

33fb921 · Feb 17, 2025
Feb 17, 2025
Nov 21, 2013
Feb 17, 2025
Feb 17, 2025
Nov 24, 2013
Feb 17, 2025
Dec 18, 2013
Nov 9, 2012
Dec 6, 2017
Oct 9, 2019
Feb 17, 2025
Feb 17, 2025
Jan 3, 2016
Apr 10, 2019
May 13, 2013
Feb 21, 2020
May 3, 2017

Repository files navigation

What is amq-protocol

amq-protocol is an AMQP 0.9.1 serialization library for Ruby. It is not an AMQP 0-9-1 client such as Bunny: amq-protocol only handles serialization and deserialization.

If you want to write your own AMQP 0-9-1 client, this gem will handle all the serialization needs for you, including RabbitMQ extensions to AMQP 0.9.1.

Supported Ruby Versions

  • amq-protocol 2.3.0 only supports Ruby 2.2+.
  • amq-protocol 2.0.0 through 2.2.0 and later supports Ruby 2.0+.
  • amq-protocol 1.9.2 was the last version to support Ruby 1.8 and 1.9.

Installation

gem install amq-protocol

Development

Make sure you have Python, pip and the mako templating package installed:

pip install mako

amq-protocol uses RabbitMQ protocol code generation library that is in Python, so there is some Python involved in the build.

To regenerate lib/amq/protocol/client.rb from the source (codegen/* files), run

./generate.rb

To make changes, do not edit client.rb directly. Instead, edit the codegen/protocol.rb.pytemplate and regenerate.

To run tests, use

bundle install --binstubs
./bin/rspec -c spec spec

Maintainer Information

amq-protocol is maintained by Michael Klishin.

CI Status

Build Status

Issues

Please report any issues you may find to our Issue tracker on GitHub.

Mailing List

Any questions you may have should be sent to the Ruby AMQP mailing list.

License

MIT (see LICENSE in the repository root).