Repolode
zeromq

zeromq/libzmq

ZeroMQ's C++ core library that extends standard sockets with asynchronous message queues, messaging patterns and multiple transports.

Stars
11,030
Forks
2,494
Open issues
396
Last commit
7 days ago

What is it?

libzmq is the core C++ engine of ZeroMQ, a lightweight messaging library that extends standard socket interfaces with features usually found in dedicated messaging middleware. Sockets provide asynchronous message queues, several messaging patterns, message filtering through subscriptions, and access to multiple transport protocols. It implements the ZMTP 3.1 wire protocol.

The library is written mainly in C++98 with some optional C++11 code, and it can be built with either autotools or CMake. Prebuilt packages are provided for Linux and macOS, and vcpkg and Homebrew can install it on other systems. The project lists supported platforms in its documentation, spanning Linux, Windows, macOS, Android and several BSD and Unix variants.

Developers use libzmq when they need to connect distributed processes with request-reply, publish-subscribe or pipeline messaging without building queueing infrastructure themselves. Language bindings for other languages sit on top of this core.

Key features

  • 01Asynchronous message queues behind standard-style socket APIs
  • 02Multiple messaging patterns such as request-reply, publish-subscribe and pipeline
  • 03Message filtering through subscriptions
  • 04Access to multiple transport protocols
  • 05Implements the ZMTP 3.1 wire protocol
  • 06Builds with autotools or CMake

Use cases

  • Connecting distributed services with asynchronous messaging between processes
  • Building publish-subscribe data feeds across networked components
  • Serving as the native foundation for language bindings that use ZeroMQ

Quick start

  1. 1

    Install on macOS via Homebrew

    brew install zeromq
  2. 2

    Clone the vcpkg repository

    git clone https://github.com/microsoft/vcpkg.git
  3. 3

    Bootstrap vcpkg (bash)

    ./bootstrap-vcpkg.sh
  4. 4

    Install zeromq with vcpkg

    ./vcpkg install zeromq

Things to know

  • Prebuilt binary packages are only supplied for Linux and macOS; other platforms require building from source.
  • DRAFT APIs can change at any time without warning, so use a STABLE build to avoid them.

In collections

Topics

FAQ

What is libzmq?
ZeroMQ's C++ core library that extends standard sockets with asynchronous message queues, messaging patterns and multiple transports. libzmq is the core C++ engine of ZeroMQ, a lightweight messaging library that extends standard socket interfaces with features usually found in dedicated messaging middleware. Sockets provide asynchronous message queues, several messaging patterns, message filtering through subscriptions, and access to multiple transport protocols. It implements the ZMTP 3.1 wire protocol.
Is libzmq free to use? What license does it have?
libzmq is open source under the MPL-2.0 license. Check the license terms before using it in commercial products.
Is libzmq still maintained?
Actively maintained. The last commit to libzmq was on Oct 18, 2026.
What can I use libzmq for?
Connecting distributed services with asynchronous messaging between processes Building publish-subscribe data feeds across networked components Serving as the native foundation for language bindings that use ZeroMQ
How do I install libzmq?
Install on macOS via Homebrew: brew install zeromq Clone the vcpkg repository: git clone https://github.com/microsoft/vcpkg.git Bootstrap vcpkg (bash): ./bootstrap-vcpkg.sh Install zeromq with vcpkg: ./vcpkg install zeromq
Where can I get libzmq?
The source code and installation instructions are on GitHub: https://github.com/zeromq/libzmq

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects