diff --git a/NEWS b/NEWS index 6b13484c..8e83bf59 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,121 @@ +0MQ version 4.1.0, released on 2014/xx/xx +========================================= + + +0MQ version 4.0.0 (RC1), released on 2013/09/20 +=============================================== + +Major changes +------------- + +* New wire level protocol, ZMTP/3.0, see http://rfc.zeromq.org/spec:23. + Does not yet implement the SUBSCRIBE, CANCEL, PING, and PONG commands. + +* New security framework, from plain user+password to strong encryption, + see section below. See http://hintjens.com/blog:49 for a tutorial. + +* New ZMQ_STREAM socket type for working as a TCP client or server. See: + tests/test_stream.cpp. + +Improvements +------------ + +* You can now connect to an inproc:// endpoint that does not already + exist. This means inproc:// no longer needs careful set-up, but it may + break code that relied on the old behaviour. See: + tests/test_inproc_connect.cpp. + +* Libzmq now checks socket types at connection time, so that trying to + connect a 'wrong' socket type will fail. + +* New zmq_ctx_shutdown API method will shutdown a context and send ETERM + to blocking calls, without blocking. Use zmq_ctx_term to finalise the + process. + +* The regression test suite has been significantly extended and improved. + +* Contexts can now be terminated in forked child processes. See: + tests/test_fork.cpp. + +* zmq_disconnect now respects the linger setting on sockets. + +* New zmq_send_const API method to send constant data (without copying). + See: tests/test_inproc_connect.cpp. + +* Added CMake support for static libraries. + +* Added test cases for socket semantics as defined in RFCs 28, 29, 30, 31. + See: tests/test_spec_*.cpp. + +* New socket option, ZMQ_PROBE_ROUTER triggers an empty message on connect. + See: tests/test_probe_router.cpp. + +* New socket option, ZMQ_REQ_CORRELATE allows for correlation of replies + from a REP socket. See: tests/test_req_correlate.cpp. + +* New socket option, ZMQ_REQ_RELAXED, lets you disable the state machine + on a REQ socket, so you can send multiple requests without waiting for + replies, and without getting an EFSM error. See: + tests/test_req_relaxed.cpp. + +* New socket option, ZMQ_CONFLATE restricts the outgoing and incoming + socket buffers to a single message. See: tests/test_conflate.cpp. + +Deprecated Options +------------------ + +* ZMQ_IPV4ONLY deprecated and renamed to ZMQ_IPV6 so that options are + consistently "off" by default. + +* ZMQ_DELAY_ATTACH_ON_CONNECT deprecated, and renamed to ZMQ_IMMEDIATE. + See: tests/test_immediate.cpp. + +Security Framework +------------------ + +Based on new ZMTP wire level protocol that negotiates a security +"mechanism" between client and server before exchanging any other data. + +Security mechanisms are extensible. ZMTP defines three by default: + +* NULL - classic ZeroMQ, with no authentication. See + http://rfc.zeromq.org/spec:23. + +* PLAIN - plain-text username + password authentication. See + http://rfc.zeromq.org/spec:24. + +* CURVE - secure authentication and encryption based on elliptic curve + cryptography, using the Curve25519 algorithm from Daniel Bernstein and + based on CurveCP's security handshake. See http://rfc.zeromq.org/spec:25, + http://rfc.zeromq.org/spec:26, and http://curvecp.org. + +Authentication is done by pluggable "authenticators" that connect to libzmq +over an inproc endpoint, see http://rfc.zeromq.org/spec:27. + +Socket options to configure PLAIN security on client or server: + +* ZMQ_PLAIN_SERVER, ZMQ_PLAIN_USERNAME, ZMQ_PLAIN_PASSWORD. See + tests/test_security_plain. + +Socket options to configure CURVE security on client or server: + +* ZMQ_CURVE_SERVER, ZMQ_CURVE_PUBLICKEY, ZMQ_CURVE_SECRETKEY, + ZMQ_CURVE_SERVERKEY. See tests/test_security_curve.cpp. + +Socket options to configure "domain" for ZAP handler: + +* ZMQ_ZAP_DOMAIN, see tests/test_security_null.cpp. + +Support for encoding/decoding CURVE binary keys to ASCII: + +* zmq_z85_encode, zmq_z85_decode. + +Other issues addressed in this release +-------------------------------------- + +* LIBZMQ-525 Multipart upstreaming from XSUB to XPUB + + 0MQ version 3.2.4 stable, released on 2013/09/20 ================================================ diff --git a/include/zmq.h b/include/zmq.h index 0aeafeb0..a6aa252f 100644 --- a/include/zmq.h +++ b/include/zmq.h @@ -72,8 +72,8 @@ typedef unsigned __int16 uint16_t; /******************************************************************************/ /* Version macros for compile-time API version detection */ -#define ZMQ_VERSION_MAJOR 3 -#define ZMQ_VERSION_MINOR 3 +#define ZMQ_VERSION_MAJOR 4 +#define ZMQ_VERSION_MINOR 1 #define ZMQ_VERSION_PATCH 0 #define ZMQ_MAKE_VERSION(major, minor, patch) \ diff --git a/src/Makefile.am b/src/Makefile.am index 0f508644..0e66c395 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -88,7 +88,7 @@ libzmq_la_SOURCES = \ dealer.hpp \ xsub.hpp \ ypipe.hpp \ - ypipe_flat.hpp \ + ypipe_base.hpp \ yqueue.hpp \ address.cpp \ clock.cpp \ diff --git a/tools/Makefile.am b/tools/Makefile.am index 7f8d6a93..955acbd9 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -1,4 +1,4 @@ -EXTRA_DIST = curve_keygen.c z85_codec.h +EXTRA_DIST = curve_keygen.c INCLUDES = -I$(top_srcdir)/include