|
1 |
| -This is C++ binding for 0MQ |
| 1 | +[](https://travis-ci.org/zeromq/cppzmq) |
| 2 | +[](https://ci.appveyor.com/project/zeromq/cppzmq/branch/master) |
| 3 | +[](https://coveralls.io/github/zeromq/cppzmq?branch=master) |
| 4 | + |
| 5 | +Introduction & Design Goals |
| 6 | +=========================== |
| 7 | + |
| 8 | +cppzmq is a C++ binding for libzmq. It has the following design goals: |
| 9 | + - cppzmq maps the libzmq C API to C++ concepts. In particular: |
| 10 | + - it is type-safe (the libzmq C API exposes various class-like concepts as void*) |
| 11 | + - it provides exception-based error handling (the libzmq C API provides errno-based error handling) |
| 12 | + - it provides RAII-style classes that automate resource management (the libzmq C API requires the user to take care to free resources explicitly) |
| 13 | + - cppzmq is a light-weight, header-only binding. You only need to include the header file zmq.hpp (and maybe zmq_addon.hpp) to use it. |
| 14 | + - zmq.hpp is meant to contain direct mappings of the abstractions provided by the libzmq C API, while zmq_addon.hpp provides additional higher-level abstractions. |
| 15 | + |
| 16 | +There are other C++ bindings for ZeroMQ with different design goals. In particular, none of the following bindings are header-only: |
| 17 | + - [zmqpp](https://github.com/zeromq/zmqpp) is a high-level binding to libzmq. |
| 18 | + - [czmqpp](https://github.com/zeromq/czmqpp) is a binding based on the high-level czmq API. |
| 19 | + - [fbzmq](https://github.com/facebook/fbzmq) is a binding that integrates with Apache Thrift and provides higher-level abstractions in addition. It requires C++14. |
| 20 | + |
| 21 | +Supported platforms |
| 22 | +=================== |
| 23 | + |
| 24 | + - Only a subset of the platforms that are supported by libzmq itself are supported. Some features already require a compiler supporting C++11. In the future, probably all features will require C++11. To build and run the tests, cmake and googletest are required. |
| 25 | + - Tested libzmq versions are |
| 26 | + - 4.2.0 (without DRAFT API) |
| 27 | + - 4.2.5 (with and without DRAFT API) |
| 28 | + - Platforms with full support (i.e. CI executing build and tests) |
| 29 | + - Ubuntu 14.04 x64 (with gcc 4.8.4) (without DRAFT API only) |
| 30 | + - Ubuntu 14.04 x64 (with gcc 7.3.0) |
| 31 | + - Visual Studio 2015 x86 |
| 32 | + - Visual Studio 2017 x86 |
| 33 | + - Additional platforms that are known to work: |
| 34 | + - We have no current reports on additional platforms that are known to work yet. Please add your platform here. If CI can be provided for them with a cloud-based CI service working with GitHub, you are invited to add CI, and make it possible to be included in the list above. |
| 35 | + - Additional platforms that probably work: |
| 36 | + - Any platform supported by libzmq that provides a sufficiently recent gcc (4.8.1 or newer) or clang (3.3 or newer) |
| 37 | + - MacOS X |
| 38 | + - Visual Studio 2012+ x86/x64 |
| 39 | + |
| 40 | +Contribution policy |
| 41 | +=================== |
2 | 42 |
|
3 | 43 | The contribution policy is at: http://rfc.zeromq.org/spec:22
|
4 | 44 |
|
| 45 | +Build instructions |
| 46 | +================== |
| 47 | + |
5 | 48 | Build steps:
|
6 | 49 |
|
7 | 50 | 1. Build [libzmq](https://github.com/zeromq/libzmq) via cmake. This does an out of source build and installs the build files
|
|
0 commit comments