[zeromq-announce] [ANNOUNCE] ZeroMQ/3.0.0 is now available

Pieter Hintjens ph at imatix.com
Tue Jul 12 16:13:24 CEST 2011


Hi all,

I've just pushed a new unstable release of 0MQ, v3.0.0.

The packages are available at the usual location:

* http://download.zeromq.org/zeromq-3.0.0.tar.gz (UNIX line endings)
* http://download.zeromq.org/zeromq-3.0.0.zip (Windows line endings)

The release notes follow; full details are as always in the
distribution ChangeLog.

Please note that upgrading to 3.0.0 will break existing code. There is
a guide to upgrading here: http://www.zeromq.org/docs:3-0-upgrade. The
PyZMQ and CZMQ bindings (at least) support both the 3.0 and 2.1 APIs.

We expect the 3.0 branch to take about six months to reach general
maturity and replace 2.1.x as the stable release.

There will be a few more 2.1.x releases but overall it looks like this
branch is mature. We'll shutter the 2.2 branch as soon as 3.0 proves
itself.

For 3.1 we plan to continue the "less is more" strategy, and remove
durable sockets (and replace them with better semantics as possible),
which are disproportionately costly to support in the code base.

Please, if you use durable sockets, do tell us your use cases so we
can think how to solve them better.

-
Pieter Hintjens
iMatix


0MQ version 3.0.0 (alpha), released on 2011/07/12
=================================================

New functionality
-----------------

* POSIX-compliant zmq_send and zmq_recv introduced (uses raw buffer
 instead of message object).

* ZMQ_MULTICAST_HOPS socket option added. Sets the appropriate field in
 IP headers of PGM packets.

* Subscription forwarding. Instead of filtering on consumer, the
 subscription is moved as far as possible towards the publisher and
 filtering is done there.

* ZMQ_XPUB, ZMQ_XSUB introduced. Allow to create subscription-
 forwarding-friendly intermediate devices.

* Add sockopt ZMQ_RCVTIMEO/ZMQ_SNDTIMEO. Allow to set timeout for
 blocking send/recv calls.

* A new LABEL flag was added to the wire format. The flag distinguishes
 message parts used by 0MQ (labels) from user payload message parts.

* Theer is a new wire format for the REQ/REP pattern. First, the empty
 bottom-of-the-stack message part is not needed any more, the LABEL
 flag is used instead. Secondly, peer IDs are 32-bit integers rather
 than 17-byte UUIDs.

* The REQ socket now drops duplicate replies.

* Outstanding requests & replies associated with a client are dropped
 when the clients dies. This is a performance optimisation.

* Introduced ZMQ_ROUTER and ZMQ_DEALER sockets. These mimic the
 functionality of ZMQ_ROUTER and ZMQ_DEALER in 0MQ/2.1.x. Guarantees
 backward compatibility for exsiting code.

* Removed dependency on OS socketpair buffer size. No more asserts in
 mailbox.cpp because of low system limit of sockepair buffer size.

API improvements
----------------

* Obsolete constants ZMQ_UPSTREAM and ZMQ_DOWNSTREAM removed. Use
 ZMQ_PUSH and ZMQ_PULL instead.

* Timeout in zmq_poll is in milliseconds instead of microseconds. This
 makes zmq_poll() compliant with POSIX poll()

* ZMQ_MCAST_LOOP removed. There's no support for multicast over
 loopback any more. Use IPC or TCP isntead.

* zmq_send/zmq_recv was renamed zmq_sendmsg/zmq_recvmsg.

* ZMQ_RECOVERY_IVL and ZMQ_RECOVERY_IVL_MSEC reconciled. The new option
 is named ZMQ_RECOVERY_IVL and the unit is milliseconds.

* Option types changed. Most of the numeric types are now represented
 as 'int'.

* ZMQ_HWM split into ZMQ_SNDHWM and ZMQ_RCVHWM. This makes it possible
 to control message flow separately for each direction.

* ZMQ_NOBLOCK renamed ZMQ_DONTWAIT. That makes it POSIX-compliant.

Less is More
------------

* Pre-built devices and zmq_device() removed. Should be made available
 as a separate project(s).

* ZMQ_SWAP removed. Writing data to disk should be done on top of 0MQ,
 on inside it.

* C++ binding removed from the core. Now it's a separate project, same
 as any other binding.

Bug fixes
---------

* Many.

Building
--------

* Make pkg-config dependency conditional.

Distribution
------------

* Removed Debian packaging, which is now available at packages.debian.org
 or via apt-get.



More information about the zeromq-announce mailing list