[zeromq-dev] libzutil - utility library

Pieter Hintjens ph at imatix.com
Fri Apr 15 18:38:57 CEST 2011


Hi all,

I'd like to start the discussion of a utility library, libzutil.  This
should be a thin layer on top of libzmq, wrapped by all bindings.

I've created a wiki page here: http://www.zeromq.org/topics:libzutil

-Pieter

++ Rationale

We need a layer just above libzmq which provides utility functions
(including functions that have been dropped from 3.0). This should be
in C/C++ to allow performance in slower languages. Making this a
separate project allows it to evolve faster than libzmq, who's API is
frozen for long periods.

++ Technical requirements

* Must be portable to all platforms that libzmq runs on.
* Must be written in C or C++ for performance (I'd prefer C since it's
more accessible).

++ Functional requirements

* Provide a set of devices, listed below.
* Provide a set of clock and timer functions (which aren't otherwise portable).
* Provide a thread creation API (which is otherwise not portable).

++ Devices

* A //switch// device that switches messages between a front-end and
back-end socket (same as [http://api.zeromq.org/2-1-3:zmq-device
zmq_device(3)]). This is used to create forwarders, queues, and
streamers.
* A //router// device that switches messages in and out of a front-end
ROUTER socket, switching addresses during each cross-over.
* A //persist// device that stores messages onto a durable disk file,
then forwards them. This replaces and extends the SWAP socket option.



More information about the zeromq-dev mailing list