[rabbitmq-discuss] rabbitmq-c or librabbitmq (it seems to have 2 names)

David Wragg david at rabbitmq.com
Wed Aug 4 15:11:55 BST 2010

John Apps <johndapps at gmail.com> writes:
> (I fear some of the following has already been asked or noted, so please
> bear with me if it has!)

Responding to the "rabbitmq-c or librabbitmq" question: rabbitmq-c is
the name of its source code repository, following our convention for
other components of the RabbitMQ suite.  librabbitmq is the resulting
library you can build from that source code, following the Unix
convention for library names.  As well as the library, rabbitmq-c
includes some example code and command-line tools based on librabbitmq.

>    - rabbitmq-c or librabbitmq is termed experimental, which begs this
>    obvious question: what does this mean?

It means that, although we are developing and maintaining it, it has not
yet received the degree of review that our officially supported client
libraries have (the Java and .NET ones).  So for instance, in the
process of such a review we might decide that significant changes are
required to the API exposed by the library.  We'd also like to see full
Windows support, so that it can be used on the same platforms as the

The "experimental" label is not a comment on its quality.  It is robust,
and many people are already using it.  Judged by the general standard of
AMQP client libraries out there, for all languages, it's in good shape.

>    - Does the library support all the 0.9.1 requirements?

There is a 0-9-1 branch, that seems in good shape to be merged soon.  We
haven't done a careful conformance-checking pass against the spec, but
it seems unlikely that there are major areas of non-conformance.

>    - Does it support all RabbitMQ 1.8.1 functionality, e.g., flow
>    control?

It doesn't yet support flow control.

>    - Another way of putting it might be: is it as function-rich as the .NET
>    or Java libraries?

Not quite.  As noted, flow control is missing.  It's also missing a few
less commonly used AMQP operations in its API (e.g. basic_reject,
basic_recover), though adding these would be trivial.

>    - Is it, or will it be, supported?
> The reason for asking is that we have a number of prospective clients who
> would benefit from using AMQP in general and RabbitMQ in particular.
> However, none of them have Erlang, none of them use Java or .NET, but all of
> them have C/C++ or other high-level language code such as COBOL. If we are
> to work with these clients we will need something a bit more reassuring than
> 'experimental'...

We have also heard quite a bit of interest in librabbitmq from the kinds
of users who would appreciate the reassurance that declaring it
"officially supported" would bring.  So it is very likely that it will
become supported.  But we cannot yet commit to a time scale for when
that will happen.


David Wragg
Staff Engineer, RabbitMQ
SpringSource, a division of VMware

More information about the rabbitmq-discuss mailing list