example workflow Coverage Status

NOTICE

This module has been in a pretty rough state of repair for a few years. I've been slowly cleaning it up and working on it as time allows. With version 2.40011, I feel like we may be in pretty good shape. OpenSSL v3 is supported now, and rabbitmq-c is updated to v0.14.0.

[!IMPORTANT] I could really use a hand with peer review on some of this cleanup. If you, or someone you know, is excited about security and is competent to review C code, please see this GitHub Discussion. Thank you.

Install

cpanm Net::AMQP::RabbitMQ

or

cpan Net::AMQP::RabbitMQ

Documentation

https://metacpan.org/pod/Net::AMQP::RabbitMQ

or once installed perldoc Net::AMQP::RabbitMQ

Tests

There are several environment variables you can set that influence the tests.

https://metacpan.org/pod/Net::AMQP::RabbitMQ#RUNNING-THE-TEST-SUITE

For developers/authors

Once you have cloned the repo, you will need to download the submodules.

git submodule init
git submodule update

This module uses Carton for Perl dependencies. Please first install Carton, and then install Perl dependencies using:

carton install

When running your own tests, for quick access to a testing RabbitMQ service, consider CloudAMQP.

There are a few convenience scripts to help you out:

To build a release

make distclean
perl Makefile.PL
make manifest
make dist

Known challenges

Special note for macOS

You need pkg-config working, especially for openssl. There are so many different ways to install dependencies, and so many different paths for them, it is becoming very difficult to guess where they will be.

As a result, we're shifting to using pkg-config for this. Please make sure that if you're running into any problems of missing symbols or misplaced files, that you check this first.

OpenSSL Compatibility

To date, OpenSSL v3 is supported.