Skip to main content

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. 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

TargetDescription
allThe 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.

cleanRemoves temporary build products.
distcleanRemoves all build products.
testsRuns 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-distCreates a source tarball of the library under ./PACKAGES.
packageCreates an Erlang archive (binary build) of the library under ./PACKAGES.