*** Welcome to piglix ***

ZeroMQ

ZeroMQ
Developer(s) iMatix
Stable release
4.2.2 / 18 February 2017; 5 months ago (2017-02-18)
Written in C++
Platform Cross-platform
Type Message queue, concurrency framework
License LGPL with static linking exception
Website www.zeromq.org

ZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is a high-performance asynchronous messaging library, aimed at use in distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ZeroMQ system can run without a dedicated message broker. The library's API is designed to resemble that of Berkeley sockets.

ZeroMQ is developed by a large community of contributors, founded by iMatix, which holds the domain name and trademarks. There are third-party bindings for many popular programming languages.

The ZeroMQ API provides sockets (a kind of generalization over the traditional IP and Unix domain sockets), each of which can represent a many-to-many connection between endpoints. Operating with a message-wise granularity, they require that a messaging pattern be used, and are particularly optimized for that kind of pattern.

The basic ZeroMQ patterns are:

Each pattern defines a particular network topology. Request-reply defines a so-called "service bus", publish-subscribe defines a "data distribution tree", and push-pull defines "parallelised pipeline". All the patterns are deliberately designed in such a way as to be infinitely scalable and thus usable on Internet scale.

Any message through the socket is treated as an opaque blob of data. Delivery to a subscriber can be automatically filtered by the blob leading string. Available message transports include , PGM (reliable multicast), inter-process communication (IPC) and inter-thread communication (ITC).

The ZeroMQ core library performs very well due to its internal threading model, and can outperform conventional TCP applications in terms of throughput by utilizing an automatic message batching technique.


...
Wikipedia

...