"I just want to get data from A to B"
Reliably sending messages back and forth is a problem that seems like it should have been solved decades ago. While there are a large number of protocols to choose from - each with their advantages and drawbacks - at the high level all we want is to be able to move data around reliably. ZeroMQ is an cross-platform, open-source solution with bindings in many languages, that takes care of tedious issues like reconnection, fan-out, subscription filtering, and more. This makes it extremely convenient in a scientific context.

We wrapped ZeroMQ's C interface directly to create a low-overhead library that's stable enough to use in LabVIEW. Some of the required low-level behaviour is non-trivial to implement implicitly multithreaded language like LabVIEW, so in solving these problems we hope this work will make adopting smart transport layers easier for others. Effort has been placed into making calls efficient, with minimal overhead, but reliable enough to have correct thread clean-up in unexpected cases, such as abort terminations.

With so many languages implementing ZeroMQ, and an active community surrounding its ongoing development, we think that ZeroMQ is the best choice for a communication layer that takes care of the details and lets you concentrate on the details of you application, not of the underlying protocol.

-- Martijn Jasperse, January 2014