[zeromq-dev] zmq C++ wrapper

Pieter Hintjens ph at imatix.com
Wed Sep 7 13:07:15 CEST 2011

2011/9/7 Ilja Golshtein <ilejncs at narod.ru>:

> to be honest I think zmq.hpp is not too bad.
> Why you are so much not happy with it?

It's perfectly fine but adds little over the low-level C API, doesn't
add essential abstractions like multipart messages, and doesn't have
any real owner. There are other problems, but our goal with separating
it from the core was to allow others to own this space and improve it.

The lack of any improvement to cppzmq since it was created as a
project is a significant sign. I've no idea who will make cppzmq work
with 0MQ/3.0 or 4.0, and there are no abstractions in the binding that
would allow it to be multi-version, as other bindings are.

> I don't treat our library as a 0mq C++ binding.
> It is mostly zmq_msg_t wrapper (that's why it is named zmqmessage,
> although I agree the name is not perfect, to put it mildly).

Well, czmq is mostly concerned with messages too, that's obvious since
it's the main area where the low-level API fails to satisfy. In czmq
we have message frames, multipart messages, strings, and the native

The second area which usually benefits from wrapping is the socket
options. See how this is done in czmq.

And then you have reactors, thread management, etc.

> I'll seriously consider your suggestions and do my best
> to transform our library to full featured C++ binding, despite
> the wish to publish the thing as soon as possible.

No need to make it more than you need immediately. I'd advise
extending cppzmq with your message handling. You also need the rest of
the C++ API anyhow.


More information about the zeromq-dev mailing list