Architecture of the ÃMQ Community
You know that ÃMQ is an LGPL-licensed project. In fact, itâs a
collection of projects built around the core library, libzmq
. Iâll visualize these projects as an
expanding galaxy:
At the core is
libzmq
. Itâs written in C++, with a low-level C API. The code is nasty, mainly because itâs highly optimized but also because itâs written in C++, a language that lends itself to subtle and deep nastiness. Martin Sustrik originally wrote the bulk of this code. Today, dozens of people maintain different parts of it.Around
libzmq
there are about 50 bindings. These are individual projects that create higher-level APIs for ÃMQ, or at least map the low-level API into other languages. The bindings vary in quality from experimental to utterly awesome. Probably the most impressive binding is PyZMQ, which was one of the first community projects built on top of ÃMQ. If you are a binding author, you should really study PyZMQ and aspire to making your code and community as great as possible.A lot of languages have multiple bindings (Erlang, Ruby, C#, at least), written by different people over time or taking varying approaches. We donât regulate these in any way. There are no âofficialâ bindings. You vote by using one or the other, contributing to it, or ignoring it.
There are a series of reimplementations of
libzmq
, starting with JeroMQ, a full Java translation of the library, which is now the basis for NetMQ, a C# stack. These native stacks offer ...
Get ZeroMQ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.