Installing the erlang client for rabbitmq can be a little tricky, specially if you are new to erlang development and you have tried to follow the instructions at http://hopper.squarespace.com/blog/2008/1/12/introducing-the-erlang-amqp-client.html.

Requirements: erlang OTP, python, mercurial.

This is how I set up the beast under OS X, hope it can be helpful.

1.- Use mercurial to clone last version of rabbitmq:

hg clone http://hg.rabbitmq.com/rabbitmq-codegen

hg clone http://hg.rabbitmq.com/rabbitmq-server

cd rabbitmq-server

make PYTHON=/opt/local/bin/python2.5

It should have compiled the server without any problem. You can set up python path with the PYTHON flag.

2.-Then you need to download and install the erlang client:

hg clone http://hg.rabbitmq.com/rabbitmq-erlang-client/

cd rabbitmq-erlang-client/

make

It should have compiled the client code. If you get some warnings about the ssl_record, it means you don't have a recent version of rabbitmq at ../rabbitmq-server. The change in that record can be seen at: http://hg.rabbitmq.com/rabbitmq-server/rev/9d6c6a354a395257493cbf8a84332326bfb71a59

The erlang client needs access to the rabbitmq server code. By default it will look for it at ../rabbitmq-server.

After compiling the code, I made it available to erlang applications by copying the output to the erlang's OTP home directory:

sudo cp -rf rabbitmq-server /usr/local/lib/erlang/lib/rabbitmq_server-1.6.0

sudo cp -rf rabbitmq-erlang-client /usr/local/lib/erlang/lib/rabbitmq_erlang_client-1.6.0

ln -s /usr/local/lib/erlang/lib/rabbitmq_server-1.6.0 /usr/local/lib/erlang/lib/rabbit_common

Now you are ready to start rabbitmq server and test the client. The last soft link allows to retrieve rabbitmq server record definitions from the erlang client. With that symlink you can include the client's records with -include_lib("rabbitmq_erlang_client/include/amqp_client.hrl"). The code at http://hopper.squarespace.com/blog/2008/1/12/introducing-the-erlang-amqp-client.html seems to be out of date, so you will need to start the client in a different way:

$erl -mnesia dir  -boot start_sasl -s rabbit

...OTP and rabbitmq starting...

1> amqp_connection:start_direct().
<0.140.0>

If everything is fine you should obtain a beautiful Pid as a result of the previous function invocation. Take a look at the code of the client to see how to use the client's API