[rabbitmq-discuss] C++ client options

Daniel Pocock daniel at pocock.com.au
Wed Aug 7 21:49:47 BST 2013



On 07/08/13 20:10, Alan Antonuk wrote:
> As Petr mentioned: all of the C++ libraries listed wrap rabbitmq-c.  The
> major difference I see between the the different libraries mentioned is how
> well they handle asynchronous events. rabbitmq-c doesn't provide a lot of
> support API wise for dealing with async events like basic.deliver, or a
> channel.close as a result of a basic.publish failure.

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

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

> SimpleAmqpClient tries to make some of the async bits more synchronous at
> the expense of performance. As far as I can tell the others listed don't do
> much in the way of error handling at a protocol level.
> 
> My (biased) opinion is to use SimpleAmqpClient.  That said, you should
> evaluate the API and the performance of the library and see if it fits your
> needs.
> 
> Full disclosure: I'm the maintainer behind both SimpleAmqpClient and
> rabbitmq-c

Did you collaborate with anybody for the Debian package of the C client?
http://packages.debian.org/jessie/librabbitmq-dev

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


Just some background: I'm mentoring a student with Google Summer of
Code, he is making some changes to the reSIProcate project

reSIProcate is a strongly object-oriented C++ project, so to remain
consistent with the code style, using C++ would be nice.  Regular C
could be used too.  Some parts of the stack use asio, other parts use a
similar, single threaded async model.

What we have here is a SIP voice conferencing application:

  https://github.com/resiprocate/reConServer

The original version of the code just takes commands and prints
responses through stdin/stdout.  We would like to replace that with JSON
over RabbitMQ / AMQP

E.g.

- when a new caller dials in, a JSON message goes out on a topic

- the admin can send an instruction over a queue (e.g. move caller A
from room 1 to room 2)



More information about the rabbitmq-discuss mailing list