[zeromq-dev] [ANNOUNCE] Crossroads I/O release 1.0.0

Martin Sustrik sustrik at 250bpm.com
Thu Mar 15 19:53:01 CET 2012

Hi all!

We would like to announce the first release of the Crossroads I/O project.

Crossroads I/O is a fork of the ZeroMQ project.

While we acknowledge forking can be a painful process, we felt the 
ZeroMQ trademark policy to be overly restrictive.

Furthermore, the ZeroMQ community has also recently chosen to institute 
a light review process, which we feel is at odds with the technical 
quality and long-term goals we desire for the project.

The website for the project can be found here:


Development of Crossroads I/O is coordinated and discussed on the 
crossroads-dev at groups.crossroads.io mailing list. You can subscribe to 
the list, and view previous archives, here:


Thanks to the kind folks at behind GroupServer for sponsoring hosting of 
the mailing list on OnlineGroups.net!

Release 1.0.0 of Crossroads I/O is available now, and can be downloaded at:


This release is a direct continuation of the work since our release of 
ZeroMQ 3.1.0 in December 2011. You can find the Release Notes included 
in this email.

We would like to thank the ZeroMQ community for their work over the 
years, and also everyone who we have discussed the fork with over the 
last couple of months for their help and advice.


Martin Sustrik
Martin Lucina


Crossroads I/O Release Notes

This file documents the major changes in between releases of Crossroads
I/O. For a detailed list of changes please refer to Git history, or the
ChangeLog file included with your distribution of Crossroads.

Release 1.0.0 (15 March 2012)

Initial release.  Changes listed here are as compared to libzmq release

New features:

* The io_threads argument has been removed from xs_init(), and the
   default number of I/O threads per context is now 1.
* Context options added - see xs_setctxopt(3):
   * The XS_IO_THREADS context option allows the user to specify the
     size of the worker thread pool.
   * The XS_MAX_SOCKETS context option allows the user to specify the
     maximum number of sockets that can exist in parallel within a
* Allow setting the source address for TCP connections - see xs_tcp(7).
* ZeroMQ drop-in compatibility mode, enabled by the --enable-libzmq
   option to configure. This is a binary compatible emulation of the
   ZeroMQ 2.1.11 API, for details see zmq(7).


* Fix pgm_receiver.cpp: zmq_assert (pending_bytes == 0). (LIBZMQ-205)
* Fix assertion in pgm_sender_t::plug(). (LIBZMQ-303)
* Race condition in zmq_term() fixed.
* Message loss when a SUB socket disconnects fixed.
* Fix data loss for PUB/SUB and unidirectional transports. (LIBZMQ-268)
* Bug in linger implementation fixed.
* Fix IPC transport domain socket stream file not being removed when
   connection is closed.
* Removal of pipe from dist_t fixed.
* Only use AI_V4MAPPED if defined, and don't use it on FreeBSD.


* Several optimisations to reduce the memory size of PUB/SUB
   subscription map.
* Avoid one extra call to poll() when there are no more data to send.


* MSVC build updated to use MSVC2010 instead of MSVC2008.
* configure prints out a summary of XS configuration.

Self tests:

* Many more tests have been added, see the tests/ subdirectory.
* The self tests can now be run from a MSVC build, see the "tests"

More information about the zeromq-dev mailing list