7
This is a C-language AMQP client library for use with AMQP servers
8
speaking protocol versions 0-9-1.
7
This is a C-language AMQP client library for use with v2.0+ of the
8
[RabbitMQ](http://www.rabbitmq.com/) broker.
10
- <http://www.rabbitmq.com/>
11
- <http://www.amqp.org/>
12
10
- <http://github.com/alanxz/rabbitmq-c>
14
12
Announcements regarding the library are periodically made on the
15
RabbitMQ mailing list and on the RabbitMQ blog.
13
rabbitmq-discuss mailing list:
17
15
- <http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss>
18
- <http://www.rabbitmq.com/blog/>
20
API Documentation (rather incomplete at this point) can be found:
21
- <http://alanxz.github.com/rabbitmq-c/docs/0.2/>
23
## Building and installing using CMake
25
The rabbitmq-c library is built using CMake v2.6+ (http://www.cmake.org) on all
28
The library itself requires no external dependancies.
30
*OPTIONALLY*: A set of command line tools used to interact with the broker are
31
included and require the Popt library (http://freecode.com/projects/popt).
32
A matching set of man pages have been written in DocBook format and need
33
the XmlTo (https://fedorahosted.org/xmlto/) utility to function correctly.
35
On most systems the commands to build rabbitmq-c are:
17
## Latest Stable Version
19
The latest stable release of [rabbitmq-c is v0.4.1](https://github.com/alanxz/rabbitmq-c/releases/tag/v0.4.1).
20
A complete list of changes can be found in the [Change Log](ChangeLog.md)
22
The v0.4.1 source tarball can be downloaded from:
24
<https://github.com/alanxz/rabbitmq-c/releases/download/v0.4.1/rabbitmq-c-0.4.1.tar.gz>
26
API documentation for v0.4.0+ can viewed from:
28
<http://alanxz.github.io/rabbitmq-c/docs/0.4.0/>
32
### Building and installing
35
- [CMake v2.6 or better](http://www.cmake.org/)
36
- A C compiler (GCC 4.4+, clang, and MSVC are test. Other compilers may also
38
- *Optionally* [OpenSSL](http://www.openssl.org/) v0.9.8+ to enable support for
39
connecting to RabbitMQ over SSL/TLS
40
- *Optionally* [POpt](http://freecode.com/projects/popt) to build some handy
42
- *Optionally* [XmlTo](https://fedorahosted.org/xmlto/) to build man pages for
43
the handy command-line tools
44
- *Optionally* [Doxygen](http://www.stack.nl/~dimitri/doxygen/) to build
45
developer API documentation.
47
After downloading and extracting the source from a tarball to a directory.
48
([see above][Latest Stable Version]), the commands to build rabbitmq-c on most
37
51
mkdir build && cd build
53
cmake --build [--config Release] .
55
The --config Release flag should be used in multi-configuration generators e.g.,
56
Visual Studio or XCode.
41
58
It is also possible to point the CMake GUI tool at the CMakeLists.txt in the root of
42
59
the source tree and generate build projects or IDE workspace
44
61
Installing the library and optionally specifying a prefix can be done with:
46
63
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
47
cmake --build . --target install
64
cmake --build . [--config Release] --target install
49
66
More information on CMake can be found on its FAQ (http://www.cmake.org/Wiki/CMake_FAQ)
51
68
Other interesting flags that can be passed to CMake:
52
* `BUILD_EXAMPLES` - builds the example code
53
* `BUILD_TOOLS` builds some command line tools for interacting with the broker
54
* `BUILD_TOOLS_DOCS` is enabled and XmlTo is found
55
* `BUILD_SHARED_LIBS` - build rabbitmq-c as a shared library
56
* `BUILD_STATIC_LIBS` - build rabbitmq-c as a static library
58
## Building and installing using autotools
70
* `BUILD_EXAMPLES=ON/OFF` toggles building the examples. ON by default.
71
* `BUILD_SHARED_LIBS=ON/OFF` toggles building rabbitmq-c as a shared library.
73
* `BUILD_STATIC_LIBS=ON/OFF` toggles building rabbitmq-c as a static library.
75
* `BUILD_TESTS=ON/OFF` toggles building test code. ON by default.
76
* `BUILD_TOOLS=ON/OFF` toggles building the command line tools. By default
77
this is ON if the build system can find the POpt header and library.
78
* `BUILD_TOOLS_DOCS=ON/OFF` toggles building the man pages for the command line
79
tools. By default this is ON if BUILD_TOOLS is ON and the build system can
80
find the XmlTo utility.
81
* `ENABLE_SSL_SUPPORT=ON/OFF` toggles building rabbitmq-c with SSL support. By
82
default this is ON if the OpenSSL headers and library can be found.
83
* `ENABLE_THREAD_SAFETY=ON/OFF` toggles OpenSSL thread-safety. By default this
85
* `BUILD_API_DOCS=ON/OFF` - toggles building the Doxygen API documentation, by
60
90
For legacy purposes, a GNU autotools based build system is also maintained. The required
61
utilities you need are autoconf v2.59+, automake v1.9+, and libtool v2.2+
63
From a fresh tarball you will need to run reconf:
91
utilities you need are autoconf v2.59+, automake v1.9+, libtool v2.2+, and pkg-config.
67
93
Then the standard autotools build procedure will build rabbitmq-c: