CZMQ Manual - CZMQ/3.0.1
czmq - high-level C binding for ZeroMQ
#include <czmq.h> cc ['flags'] 'files' -lzmq -lczmq ['libraries']
These classes provide the main socket and message API:
- zsock(3) - working with ZeroMQ sockets (high-level)
- zstr(3) - sending and receiving strings
- zmsg(3) - working with multipart messages
- zframe(3) - working with single message frames
- zactor(3) - Actor class (socket + thread)
- zloop(3) - event-driven reactor
- zpoller(3) - trivial socket poller class
- zproxy(3) - proxy actor (like zmq_proxy_steerable)
- zmonitor(3) - monitor events on ZeroMQ sockets
These classes support authentication and encryption:
- zauth(3) - authentication actor for ZeroMQ servers
- zcert(3) - work with CURVE security certificates
- zcertstore(3) - work with CURVE security certificate stores
These classes provide generic containers:
- zhash(3) - simple generic hash container
- zhashx(3) - extended generic hash container
- zlist(3) - simple generic list container
- zlistx(3) - extended generic list container
These classes wrap-up non-portable functionality:
- zbeacon(3) - LAN discovery and presence
- zclock(3) - millisecond clocks and delays
- zdir(3) - work with file-system directories
- zdir_patch(3) - work with directory differences
- zfile(3) - work with file-system files
- zsys(3) - system-level methods
- zuuid(3) - UUID support class
- ziflist(3) - list available network interfaces
And these utility classes add value:
- zchunk(3) - work with memory chunks
- zconfig(3) - work with textual config files
- zrex(3) - work with regular expressions
- zgossip(3) - decentralized configuration management
These classes are deprecated:
- zctx(3) - working with ZeroMQ contexts
- zsocket(3) - working with ZeroMQ sockets (low-level)
- zsockopt(3) - get/set ZeroMQ socket options
- zthread(3) - working with system threads
- zauth_v2(3) - authentication for ZeroMQ servers
- zbeacon_v2(3) - LAN discovery and presence
- zmonitor_v2(3) - socket event monitor
- zproxy_v2(3) - zmq_proxy wrapper
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 github.com/zeromq. Its other authors and contributors are listed in the AUTHORS file.
The contributors are listed in AUTHORS. This project uses the MPL v2 license, see LICENSE.
To submit an issue use the issue tracker at http://github.com/zeromq/czmq/issues. All discussion happens on the zeromq-dev list or #zeromq IRC channel at irc.freenode.net.
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 http://www.zeromq.org/docs:contributing. 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.
Building and installing
CZMQ uses autotools for packaging. To build from git (all example commands are for Linux):
git clone git://github.com/zeromq/czmq.git cd czmq sh autogen.sh ./configure 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 ./czmq_selftest
Linking with an application
Include czmq.h in your application and link with CZMQ. Here is a typical gcc link command:
E: unhandled condition