Menu

RabbitMQ Erlang Client Library Build Instructions

Overview

This guide covers building RabbitMQ Erlang client from source.

Building from Source

Prerequisites

In order to build the client library, you will need a few tools.

RabbitMQ requires a recent version of Python for generating AMQP 0-9-1 framing code.

Additionally, you will need

  • The Erlang development and runtime tools. If you are on a Debian-based system then you need the erlang-nox, erlang-dev and erlang-src packages installed. See Erlang Version Requirements guide to learn about the recommended ways of provisioning a recent supported version of Erlang.
  • A recent version of Elixir
  • a recent version of GNU make
  • a recent version of xsltproc, which is part of libxslt
  • a recent version of xmlto
  • zip and unzip

Building the Client

The repository is hosted on GitHub. Clone the repository with

git clone https://github.com/rabbitmq/rabbitmq-erlang-client.git

to build the client, run make:

cd rabbitmq-erlang-client
make

This will clone and build all dependencies of the client.

Other Make Targets

There are other useful Makefile targets available in the repository. They include

Target Description
all The default target. Builds the client library and all of its dependencies.
shell Builds the client library and starts an Erlang shell (a REPL) with the libraries loaded.
run-broker Builds the client and starts a RabbitMQ server node with shell and the client included in runtime load path.
clean Removes temporary build products.
distclean Removes all build products.
tests Runs test suites
dialyze Analyses the client source code with dialyzer. Uses PLT file from default location: ~/.dialyzer_plt. Use
make PLT=/path/to/plt dialyze
to override this. Add broker to PLT beforehand, otherwise you will a lot of 'unknown function' warnings. See add_broker_to_plt make target.
source-dist Creates a source tarball of the library under ./PACKAGES.
package Creates an Erlang archive (binary build) of the library under ./PACKAGES.

Getting Help and Providing Feedback

If you have questions about the contents of this guide or any other topic related to RabbitMQ, don't hesitate to ask them on the RabbitMQ mailing list.

Help Us Improve the Docs <3

If you'd like to contribute an improvement to the site, its source is available on GitHub. Simply fork the repository and submit a pull request. Thank you!