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:
- zctx(3) - working with ØMQ contexts
- zframe(3) - working with single message frames
- zloop(3) - event-driven reactor
- zmonitor(3) - socket event monitor
- zmsg(3) - working with multipart messages
- zpoller(3) - trivial socket poller class
- zproxy(3) - convenient zmq_proxy api
- zsocket(3) - working with ØMQ sockets
- zsockopt(3) - get/set ØMQ socket options
- zstr(3) - sending and receiving strings
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:
- zbeacon(3) - LAN discovery and presence
- zservice(3) - network service registry and lookup
- zclock(3) - millisecond clocks and delays
- zdir(3) - work with file-system directories
- zfile(3) - provides methods to work with files in a portable fashion.
- zmutex(3) - working with mutexes
- zsys(3) - system-level methods
- zthread(3) - working with system threads
- zuuid(3) - UUID support class
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
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 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 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