CZMQ Manual - CZMQ/2.2.1


czmq - high-level C binding for ØMQ


#include <czmq.h>

cc ['flags'] 'files' -lzmq -lczmq ['libraries']



These classes wrap the low-level ZeroMQ API:

These classes provide additional support for authentication and encryption:

  • zauth(3) - authentication for ZeroMQ security mechanisms
  • zcert(3) - work with CURVE security certificates
  • zcertstore(3) - work with CURVE security certificate stores

These classes provide generic containers:

  • zhash(3) - generic type-free hash container
  • zlist(3) - generic type-free list container
  • ztree(3) - generic type-free red-black tree container

These classes abstract non-portable functionality:

And these utility classes add value:

Scope and goals

CZMQ has these goals:

  • To wrap the ØMQ core API in semantics that are natural and lead to shorter, more readable applications.
  • To hide the differences between versions of ØMQ.
  • To provide a space for development of more sophisticated API semantics.

Ownership and license

CZMQ is maintained by the ZeroMQ community at Its other authors and contributors are listed in the AUTHORS file.

The authors of CZMQ grant you free use of this software under the terms of the GNU Lesser General Public License (LGPL). For details see the files COPYING and COPYING.LESSER in this directory.


To submit an issue use the issue tracker at All discussion happens on the zeromq-dev list or #zeromq IRC channel at

The proper way to submit patches is to clone this repository, make your changes, and use git to create a patch or a pull request. See All contributors are listed in AUTHORS.

All classes are maintained by a single person, who is the responsible editor for that class and who is named in the header as such. This is usually the originator of the class. When several people collaborate on a class, one single person is always the lead maintainer and the one to blame when it breaks.

The general rule is, if you contribute code to CZMQ you must be willing to maintain it as long as there are users of it. Code with no active maintainer will in general be deprecated and/or removed.

Using czmq

Building and installing

CZMQ uses autotools for packaging. To build from git (all example commands are for Linux):

    git clone git://
    cd czmq
    make all
    sudo make install
    sudo ldconfig

You will need the pkg-config, libtool, and autoreconf packages. Set the LD_LIBRARY_PATH to /usr/local/libs unless you install elsewhere.

After building, you can run the CZMQ selftests:

    cd src

Linking with an application

Include czmq.h in your application and link with CZMQ. Here is a typical gcc link command:
E: unhandled condition