finds.dev← search

// the find

zeromq/libzmq

★ 10,953 · C++ · MPL-2.0 · updated Jul 2026

ZeroMQ core engine in C++, implements ZMTP/3.1

libzmq is the C++ core of ZeroMQ — a socket abstraction library that bakes messaging patterns (pub/sub, push/pull, req/rep, dealer/router) directly into the transport layer. It implements ZMTP/3.1 and handles async I/O, connection management, and message framing so you don't have to. It's the foundation that every language binding (pyzmq, netmq, etc.) sits on top of.

The pattern model is genuinely well-designed — a DEALER/ROUTER pair gives you async request routing that would take hundreds of lines to build on raw TCP. CURVE security (NaCl-based public-key auth and encryption) is built in, not bolted on, and works transparently across transports. The inproc transport shares memory between threads with zero copies, which matters for high-throughput pipelines. Build system coverage is serious — autotools, CMake, vcpkg, Conan, Android NDK, QNX, z/OS — if your platform matters, it's probably there.

The C API is error-prone in ways that bite silently: forgetting to drain a socket before closing a context blocks forever, and the send/recv return values are easy to ignore. The DRAFT API flag gives the project room to experiment but makes it genuinely hard to know which features are stable — you have to read the changelog, not just the docs. Documentation is man-page style: thorough for individual functions, thin on the 'how do these patterns actually compose in production' question. The project is also in steady-state maintenance rather than active development, which is fine for a stable library but means paper cuts don't get fixed quickly.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →