Releases: zeromq/libzmq
libzmq 4.2.1
0MQ version 4.2.1 stable, released on 2016/12/31
- New DRAFT (see NEWS for 4.2.0) Socket Monitor events:
- ZMQ_EVENT_HANDSHAKE_SUCCEED
- ZMQ_EVENT_HANDSHAKE_FAILED
These events trigger when the ZMTP security mechanism handshake is
completed. See doc/zmq_socket_monitor.txt for more information.
- New DRAFT (see NEWS for 4.2.0) Context options:
- ZMQ_MSG_T_SIZE
See doc/zmq_ctx_get.txt for more information.
- ZMQ_MSG_T_SIZE
- Fixed #2268 - improved compatibility with mingw32
- Fixed #2254 - ZMQ_PUB compatibility with libzmq 2.x broken
- Fixed #2245 - added support for VS2017, Windows SDK 10.0.14393.0, toolset v141
- Fixed #2242 - file descriptors leaks on fork+exec
- Fixed #2239 - retired poller item crash from reaper thread
- Fixed #2234 - improved compatibility with AIX 7.1
- Fixed #2225 - cannot pick select for poller
- Fixed #2217 - CMake build uses library version as the ABI version
- Fixed #2208 - added support for ZMQ_TOS on IPv6
- Fixed #2200 - no documentation for ZMQ_SOCKS_PROXY
- Fixed #2199 - no documentation for zmq_curve_public
- Fixed #2196 - fixed build and runtime errors on kFreeBSD
libzmq 4.2.0
0MQ version 4.2.0 stable, released on 2016/11/04
-
For Pieter. Thanks for making all of this possible.
"Tell them I was a writer.
A maker of software.
A humanist. A father.
And many things.
But above all, a writer.
Thank You. :)"- Pieter Hintjens
-
This release introduces new APIs, but it is ABI compatible with
libzmq 4.1.2 and up. -
Note for ARM and SPARC users: an alignment problem in zmq_msg_t that could in
some cases and on some CPUs cause a SIGBUS error was solved, but it requires
a rebuild of your application against the 4.2.0 version of include/zmq.h.
To clarify, this change does not affect the internals of the library but only
the public definition of zmq_msg_t, so there is no ABI incompatibility. -
Security with Curve is now available by default thanks to Tweetnacl sources:
https://tweetnacl.cr.yp.to/index.html
Libsodium is still fully supported but has to be enabled with the build flag
--with-libsodium. Distribution and package maintainers are encouraged to use
libsodium so that the security implementation can be audited and maintained
separately. -
New Context options:
- ZMQ_MAX_MSGSZ
- ZMQ_BLOCKY
See doc/zmq_ctx_set.txt and doc/zmq_ctx_get.txt for details.
-
New Socket options:
- ZMQ_HANDSHAKE_IVL
- ZMQ_SOCKS_PROXY
- ZMQ_XPUB_NODROP
- ZMQ_XPUB_MANUAL
- ZMQ_XPUB_WELCOME_MSG
- ZMQ_STREAM_NOTIFY
- ZMQ_INVERT_MATCHING
- ZMQ_HEARTBEAT_IVL
- ZMQ_HEARTBEAT_TTL
- ZMQ_HEARTBEAT_TIMEOUT
- ZMQ_XPUB_VERBOSER
- ZMQ_CONNECT_TIMEOUT
- ZMQ_TCP_MAXRT
- ZMQ_THREAD_SAFE
- ZMQ_MULTICAST_MAXTPDU
- ZMQ_VMCI_BUFFER_SIZE
- ZMQ_VMCI_BUFFER_MIN_SIZE
- ZMQ_VMCI_BUFFER_MAX_SIZE
- ZMQ_VMCI_CONNECT_TIMEOUT
- ZMQ_USE_FD
See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details.
-
New CURVE helper function to derive z85 public key from secret key:
zmq_curve_public -
New cross-platform atomic counter helper functions:
zmq_atomic_counter_new, zmq_atomic_counter_set, zmq_atomic_counter_inc,
zmq_atomic_counter_dec, zmq_atomic_counter_value, zmq_atomic_counter_destroy
See doc/zmq_atomic_*.txt for details. -
New DRAFT APIs early-release mechanism. New APIs will be introduced early
in public releases, and until they are stabilized and guaranteed not to
change anymore they will be unavailable unless the new build flag
--enable-drafts is used. This will allow developers and early adopters to
test new APIs before they are finalized.
NOTE: as the name implies, NO GUARANTEE is made on the stability of these APIs.
They might change or disappear entirely. Distributions are recommended NOT to
build with them.New socket types have been introduced in DRAFT state:
ZMQ_SERVER, ZMQ_CLIENT, ZMQ_RADIO, ZMQ_DISH, ZMQ_GATHER, ZMQ_SCATTER,
ZMQ_DGRAM
All these sockets are THREAD SAFE, unlike the existing socket types. They do
NOT support multipart messages (ZMQ_SNDMORE/ZMQ_RCVMORE).
ZMQ_RADIO, ZMQ_DISH and ZMQ_DGRAM also support UDP as transport,
both unicast and multicast. See doc/zmq_udp.txt for more details.
New methods to support the new socket types functionality:
zmq_join, zmq_leave, zmq_msg_set_routing_id, zmq_msg_routing_id,
zmq_msg_set_group, zmq_msg_group
See doc/zmq_socket.txt for more details.New poller mechanism and APIs have been introduced in DRAFT state:
zmq_poller_new, zmq_poller_destroy, zmq_poller_add, zmq_poller_modify,
zmq_poller_remove, zmq_poller_wait, zmq_poller_wait_all, zmq_poller_add_fd
zmq_poller_modify_fd, zmq_poller_remove_fd
and a new supporting struct typedef: zmq_poller_event_t
They support existing socket type, new thread-safe socket types and file
descriptors (cross-platform).
Documentation will be made available in the future before these APIs are declared
stable.New cross-platform timers helper functions have been introduced in DRAFT state:
zmq_timers_new, zmq_timers_destroy, zmq_timers_add, zmq_timers_cancel,
zmq_timers_set_interval, zmq_timers_reset, zmq_timers_timeout,
zmq_timers_execute
and a new supporting callback typedef: zmq_timer_fn -
Many, many bug fixes. The most important fixes are backported and captured in the
4.1.x and 4.0.x changelogs.
0MQ version 4.2.0 rc1, released on 2016/11/01
- Many changes, see ChangeLog.
0MQ version 4.1.6 stable, released on 2016/11/01
- Fixed #2051 - getifaddrs can fail with ECONNREFUSED
- Fixed #2091 - testutil.hpp fails to build on Windows XP
- Fixed #2096 - add tests/CMakeLists.in and version.rc.in to dist tar
- Fixed #2107 - zmq_connect with IPv6 "source:port;dest:port" broken
- Fixed #2117 - ctx_term assert with inproc zmq_router connect-before-bind
- Fixed #2158 - Socket monitor uses internal Pair from multiple threads
- Fixed #2161 - messages dropped due to HWM race
- Fixed #1325 - alignment issue with zmq_msg_t causes SIGBUS on SPARC and ARM
0MQ version 4.1.5 stable, released on 2016/06/17
- Fixed #1673 - CMake on Windows put PDB in wrong directory.
- Fixed #1723 - Family is not set when resolving NIC on Android.
- Fixed #1608 - Windows 7 TCP slow start issue.
- Fixed #1806 - uninitialised read in curve getsockopt.
- Fixed #1807 - build broken with GCC 6.
- Fixed #1831 - potential assertion failure with latest libsodium.
- Fixed #1850 - detection issues with tweetnacl/libsodium.
- Fixed #1877 - Avoid terminating connections prematurely
- Fixed #1887 - zmq_bind IPv4 fallback still tries IPv6
- Fixed #1866 - fails to build on SunOS 5.10 / Solaris 10
- Fixed #919 - ZMQ_LINGER (related to #1877)
- Fixed #114 - cannot unbind with same endpoint with IPv6 enabled.
- Fixed #1952 - CMake scripts not part of release tarballs
- Fixed #1542 - Fix a crash on Windows when port 5905 is in use.
- Fixed #2021 - Fix building on sparc32.
0MQ version 4.1.4 stable, released on 2015/12/18
- Fixed #1315 - socket monitor hangs if bind/setsockopt failed.
- Fixed #1399 - assertion failure in tcp.cpp after network reconnect.
- Fixed #1632 - build failure using latest libsodium.
- Fixed #1644 - assertion failure in msg.cpp:390 on STREAM sockets.
- Fixed #1661 - does not handle IPv6 link local addresses.
0MQ version 4.1.3 stable, released on 2015/08/17
- Fixed #1532 - getsockopt ZMQ_RCVMORE now resets all bits instead of only 32
- Fixed #1445 - zmq::socket_base_t::connect fails on tcp ipv6 address
0MQ version 4.1.2 stable, released on 2015/06/15
- Added explicit reference to static link exception in every source file.
- Bumped ABI version to 5:0:0 since 4.1.x changed the ABI.
- Fixed STDINT event interface macros to work with CZMQ 3.0.
- Fixed installation of man pages when BUILD_DOC is not set.
- Fixed #1428 - regression on single-socket proxies.
0MQ version 4.1.1 stable, released on 2015/06/02
- Fixed #1208 - fix recursion in automake packaging.
- Fixed #1224 - crash when processing empty unsubscribe message.
- Fixed #1213 - properties files were missing from source packages.
- Fixed #1273 - V3 protocol handler vulnerable to downgrade attacks.
- Fixed #1347 - lack way to get peer address.
- Fixed #1362 - SUB socket sometimes fails to resubscribe properly.
- Fixed #1377, #1144 - failed with WSANOTINITIALISED in some cases.
- Fixed #1389 - PUB, PUSH sockets had slow memory leak.
- Fixed #1382 - zmq_proxy did not terminate if there were no readers.
0MQ version 4.1.0 rc1, released on 2014/10/14
- All issues that were fixed in 4.0.x
- Improved client reconnection strategy on errors
- GSSAPI security mechanism
- SOCKS5 support (ZMQ_SOCKS_PROXY)
- ZMQ_ROUTER_HANDOVER
- ZMQ_TOS
- ZMQ_CONNECT_RID
- ZMQ_HANDSHAKE_IVL
- ZMQ_IDENTITY_FD
- ZMQ_XPUB_NODROP
- ZMQ_SRCFD and ZMQ_SHARED message options
- Message metadata -- zmq_msg_gets ()
- Probe library configuration -- zmq_has ()
0MQ version 4.0.8 stable, released on 2016/06/17
- Fixed LIBZMQ-949 - zmq_unbind fails for inproc and wildcard endpoints
- Fixed #1806 - uninitialised read in curve getsockopt.
- Fixed #1807 - build broken with GCC 6.
- Fixed #1877 - Avoid terminating connections prematurely
- Fixed #1887 - zmq_bind IPv4 fallback still tries IPv6
- Fixed #98 - don't require libssp without libsodium on Solaris
- Fixed #919 - ZMQ_LINGER (related to #1877)
- Fixed #139 - "tempnam" is deprecated.
0MQ version 4.0.7 stable, released on 2015/06/15
- Fixed #1428 - regression on single-socket proxies.
0MQ version 4.0.6 stable, released on 2015/06/02
- Fixed #1273 - V3 protocol handler vulnerable to downgrade attacks.
- Fixed #1362 - SUB socket sometimes fails to resubscribe properly.
- Fixed #1377, #1144 - failed with WSANOTINITIALISED in some cases.
- Fixed #1389 - PUB, PUSH sockets had slow memory leak.
- Fixed #1382 - zmq_proxy did not terminate if there were no readers.
4.2.0 Release Candidate 1
This is the first Release Candidate of libzmq 4.2.0. Go forth and test!
If there are no reports of breakages, the stable 4.2.0 will be tagged and get proper release notes.