Home

Awesome

ZeroMQ

Build Status Build status Coverage Status Conan Center

Welcome

The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. ZeroMQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more.

Supported platforms <a name="#platforms"/>

Libzmq is mainly written in C++98 with some optional C++11-fragments. For configuration either autotools or CMake is employed. See below for some lists of platforms, where libzmq has been successfully compiled on.

Supported platforms with primary CI

OS and versionArchitectureCompiler and versionBuild systemRemarks
Android NDK r25arm, arm64, x86, x86_64llvm (see NDK)autotoolsDRAFT
Ubuntu 14.04.5 LTS (trusty)amd64clang 5.0.0autotoolsSTABLE, extras: GSSAPI, PGM, NORM, C++98 mode only
Ubuntu 14.04.5 LTS (trusty)amd64gcc 4.8.4autotoolsSTABLE, DRAFT, extras: GSSAPI, PGM, NORM, TIPC, IPV6, also POLLER=poll, POLLER=select, also valgrind and address sanitizer executions
Ubuntu 14.04.5 LTS (trusty)amd64gcc 4.8.4CMake 3.12.2STABLE
Windows Server 2012 R2x86Visual Studio 2008CMake 3.12.2DRAFT
Windows Server 2012 R2x86Visual Studio 2010 SP1CMake 3.12.2DRAFT
Windows Server 2012 R2x86Visual Studio 2012 Update 5CMake 3.12.2DRAFT
Windows Server 2012 R2x86, amd64Visual Studio 2013 Update 5CMake 3.12.2DRAFT, STABLE (x86 Release only), also POLLER=epoll
Windows Server 2012 R2x86Visual Studio 2015 Update 3CMake 3.12.2DRAFT
Windows Server 2016x86Visual Studio 2017 15.9.6CMake 3.13.3DRAFT
cygwin 3.0.0 on Windows Server 2012 R2amd64gcc 7.4.0CMake 3.6.2DRAFT
MSYS2 ? on Windows Server 2012 R2amd64gcc 6.4.0CMake ?DRAFT
Mac OS X 10.13amd64Xcode 9.4.1, Apple LLVM 9.1.0autotoolsSTABLE, DRAFT
Mac OS X 10.13amd64Xcode 9.4.1, Apple LLVM 9.1.0CMake 3.11.4DRAFT

Note: the platforms are regularly updated by the service providers, so this information might get out of date without any changes on the side of libzmq. For Appveyor, refer to https://www.appveyor.com/updates/ regarding platform updates. For travis-ci, refer to https://changelog.travis-ci.com/ regarding platform updates.

Supported platforms with secondary CI

OS and versionArchitectureCompiler and versionBuild systemRemarks
CentOS 6x86, amd64?autotools
CentOS 7amd64?autotools
Debian 8.0x86, amd64?autotools
Debian 9.0ARM64, x86, amd64?autotools
Fedora 28ARM64, ARM32, amd64?autotools
Fedora 29ARM64, ARM32, amd64?autotools
Fedora RawhideARM64, ARM32, amd64?autotools
RedHat Enterprise Linux 7amd64, ppc64?autotools
SuSE Linux Enterprise 12 SP4ARM64, amd64, ppc64, s390x?autotools
SuSE Linux Enterprise 15amd64?autotools
xUbuntu 12.04x86, amd64?autotools
xUbuntu 14.04x86, amd64?autotools
xUbuntu 16.04x86, amd64?autotools
xUbuntu 18.04x86, amd64?autotools
xUbuntu 18.10x86, amd64?autotools

Supported platforms with known active users

At the time of writing, no explicit reports have been available. Please report your experiences by opening a PR adding an entry or moving an entry from the section below.

Under "last report", please name either the SHA1 in case of an unreleased version, or the version number in case of a released version.

OS and versionArchitectureCompiler and versionBuild systemLast reportRemarks
Solaris 10x86, amd64, sparcGCC 8.1.0CMake2019/03/18
DragonFly BSDamd64gcc 8.3autotools2018/08/07 git-72854e63
IBM ippc64gcc 6.3autotools2019/10/02 git-25320a3
QNX 7.0x86_64gcc 5.4.0CMake4.3.2
Windows 10ARM64Visual Studio 2019CMake2021/11/15 git-2375ca8b
Windows 10ARM64clangCMake2021/11/15 git-2375ca8b

Supported platforms without known active users

Note: this list is incomplete and inaccurate and still needs some work.

OS and versionArchitectureCompiler and versionBuild systemRemarks
Any Linux distributionx86, amd64gcc ?+, clang ?+, icc ?+autotools, CMake
SunOS, Solarisx86, amd64SunProautotools, CMake
GNU/kFreeBSD??autotools, CMake
FreeBSD??autotools, CMake
NetBSD??autotools, CMake
OpenBSD??autotools, CMake
DragonFly BSDamd64gcc 8.3autotools, CMake
HP-UX??autotools, CMake
GNU/Hurd??autotools
VxWorks 6.8???
Windows CE???
Windows UWP???
OpenVMS???

Unsupported platforms

OS and versionArchitectureCompiler and versionRemarks
QNX 6.3?gcc 3.3.5see #3371, support was added by a user, but not contributed to upstream

For more details, see here.

For some platforms (Linux, Mac OS X), prebuilt binary packages are supplied by the ZeroMQ organization. For other platforms, you need to build your own binaries.

Installation of binary packages <a name="installation"/>

Linux

For Linux users, pre-built binary packages are available for most distributions. Note that DRAFT APIs can change at any time without warning, pick a STABLE build to avoid having them enabled.

Latest releases

DEB

OBS release stable OBS release draft

RPM

OBS release stable OBS release draft

Bleeding edge packages

DEB

OBS release stable OBS release draft

RPM

OBS release stable OBS release draft

Example: Debian 9 latest release, no DRAFT apis

echo "deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/Debian_9.0/ ./" >> /etc/apt/sources.list
wget https://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/Debian_9.0/Release.key -O- | sudo apt-key add
apt-get install libzmq3-dev

OSX

For OSX users, packages are available via brew.

brew install zeromq

Installation of package manager <a name="package manager"/>

vcpkg

vcpkg is a full platform package manager, you can easily install libzmq via vcpkg.

git clone https://github.com/microsoft/vcpkg.git
./bootstrap-vcpkg.bat # For powershell
./bootstrap-vcpkg.sh # For bash
./vcpkg install zeromq

Build from sources <a name="build"/>

To build from sources, see the INSTALL file included with the distribution.

Android

To build from source, see README file in the android build directory.

Resources

Extensive documentation is provided with the distribution. Refer to doc/zmq.html, or "man zmq" after you have installed libzmq on your system.

Website: http://www.zeromq.org/

Development mailing list: zeromq-dev@lists.zeromq.org Announcements mailing list: zeromq-announce@lists.zeromq.org

Git repository: http://github.com/zeromq/libzmq

ZeroMQ developers can also be found on the IRC channel #zeromq, on the Libera Chat network (irc.libera.chat).

License

The project license is specified in LICENSE.

libzmq is free software; you can redistribute it and/or modify it under the terms of the Mozilla Public License Version 2.0.

Contributing

This project uses C4(Collective Code Construction Contract) process for contributions.