[rabbitmq-discuss] C++ client options

Alan Antonuk alan.antonuk at gmail.com
Wed Aug 7 23:57:27 BST 2013

On Wed, Aug 7, 2013 at 1:49 PM, Daniel Pocock <daniel at pocock.com.au> wrote:

> Does this mean we need to block and/or use threads to receive messages?

Yes, the state of rabbitmq-c and SimpleAmqpClient when waiting for a
delivery from a consumer is you need to block, optionally with a timeout.

The problem I'm stating is that AMQP has some async parts to the protocol,
and rabbitmq-c doesn't do anything to handle these events as they're fired
from the broker.  They're only 'seen' by rabbitmq-c when synchronous calls
are made.

> Do you envisage making it work like boost::asio or have you seen
> anything like that for AMQP?

A few years back I started to implement a pure C++ AMQP client library
leveraging boost::asio.  You can find it here:
The project was not completed. I don't have plans to resume work it.

Recently I have been doing a bit of design work to see what would be
necessary to create an library that leverages libuv to make a
fully-functional native AMQP client.

> Did you collaborate with anybody for the Debian package of the C client?
> http://packages.debian.org/jessie/librabbitmq-dev
> That package is very old.  People have come to me time-to-time for
assistance in creating a Ubuntu and/or Debian package, and not having a lot
of knowledge in the process I do what I can to help out.  Currently there
is some packaging material in the debian directory of the rabbitmq-c repo.
 It is somewhat out of date, though not as old as what you've linked.

I personally would like to move the packaging details out of the repository
to allow for different distributions to come up with their own independent
packaging, as each distribution seems to do things in a slightly different
and incompatible way. If you or someone you know is willing to step up and
help maintain said package, I will do what I can to help out.

Has anybody discussed a package of the C++ client?

I haven't heard of anyone doing so.  One roadblock is that when
SimpleAmqpClient was created it used a newer version of boost than came
packaged with the LTS version of Ubuntu because it needed the boost.chrono
library which was fairly new at the time.  I'm not sure if the situation
has changed since then.

Again if you or someone you know is willing to step up and help maintain an
SimpleAmqpClient package, I will do what I can to help out.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130807/7c36357d/attachment.htm>

More information about the rabbitmq-discuss mailing list