ØMQ/3.0 Roadmap

For reference, here's the list of changes introduced by ØMQ/3.0:

  • 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.
  • 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 way as any other binding.
  • zmq_send/zmq_recv was renamed zmq_sendmsg/zmq_recvmsg.
  • POSIX-compliant zmq_send and zmq_recv introduced (uses raw buffer instead of message object).
  • 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 represented as 'int'.
  • ZMQ_HWM split into ZMQ_SNDHWM and ZMQ_RCVHWM. This allows to control message flow separately for each direction.
  • ZMQ_NOBLOCK renamed ZMQ_DONTWAIT. That makes it POSIX-compliant.
  • ZMQ_MULTICAST_HOPS socket option added. Sets the appropriate field in IP headers of PGM packets.
  • Subscription forwarding. Instead of filtering on consumer, subscription is moved as far as possible towards 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.
  • LABEL flag added to the wire format. The flag distinguishes message parts used by 0MQ (labels) from user payload message parts.
  • New wire format for REQ/REP pattern. First, bottom-of-the-stack message part is not needed any more — LABEL flag is used instead. Second, peer IDs are 32-bit integers rather than UUIDs.
  • REQ socket drops duplicate replies.
  • Outstanding requests & replies associated with a client are dropped when the clients dies. Performance optimisation.
  • Introduce 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.
  • Make pkg-config dependency conditional.

Comments: 2

Add a New Comment