ZeroMQ
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
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 version
Architecture
Compiler and version
Build system
Remarks
Android NDK r20
arm, arm64, x86, x86_64
llvm (see NDK)
autotools
DRAFT
Ubuntu 14.04.5 LTS (trusty)
amd64
clang 5.0.0
autotools
STABLE, extras: GSSAPI, PGM, NORM, C++98 mode only
Ubuntu 14.04.5 LTS (trusty)
amd64
gcc 4.8.4
autotools
STABLE, DRAFT, extras: GSSAPI, PGM, NORM, TIPC, IPV6, also POLLER=poll, POLLER=select, also valgrind and address sanitizer executions
Ubuntu 14.04.5 LTS (trusty)
amd64
gcc 4.8.4
CMake 3.12.2
STABLE
Windows Server 2012 R2
x86
Visual Studio 2008
CMake 3.12.2
DRAFT
Windows Server 2012 R2
x86
Visual Studio 2010 SP1
CMake 3.12.2
DRAFT
Windows Server 2012 R2
x86
Visual Studio 2012 Update 5
CMake 3.12.2
DRAFT
Windows Server 2012 R2
x86, amd64
Visual Studio 2013 Update 5
CMake 3.12.2
DRAFT, STABLE (x86 Release only), also POLLER=epoll
Windows Server 2012 R2
x86
Visual Studio 2015 Update 3
CMake 3.12.2
DRAFT
Windows Server 2016
x86
Visual Studio 2017 15.9.6
CMake 3.13.3
DRAFT
cygwin 3.0.0 on Windows Server 2012 R2
amd64
gcc 7.4.0
CMake 3.6.2
DRAFT
MSYS2 ? on Windows Server 2012 R2
amd64
gcc 6.4.0
CMake ?
DRAFT
Mac OS X 10.13
amd64
Xcode 9.4.1, Apple LLVM 9.1.0
autotools
STABLE, DRAFT
Mac OS X 10.13
amd64
Xcode 9.4.1, Apple LLVM 9.1.0
CMake 3.11.4
DRAFT
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 version
Architecture
Compiler and version
Build system
Remarks
CentOS 6
x86, amd64
?
autotools
CentOS 7
amd64
?
autotools
Debian 8.0
x86, amd64
?
autotools
Debian 9.0
ARM64, x86, amd64
?
autotools
Fedora 28
ARM64, ARM32, amd64
?
autotools
Fedora 29
ARM64, ARM32, amd64
?
autotools
Fedora Rawhide
ARM64, ARM32, amd64
?
autotools
RedHat Enterprise Linux 7
amd64, ppc64
?
autotools
SuSE Linux Enterprise 12 SP4
ARM64, amd64, ppc64, s390x
?
autotools
SuSE Linux Enterprise 15
amd64
?
autotools
xUbuntu 12.04
x86, amd64
?
autotools
xUbuntu 14.04
x86, amd64
?
autotools
xUbuntu 16.04
x86, amd64
?
autotools
xUbuntu 18.04
x86, amd64
?
autotools
xUbuntu 18.10
x86, 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 version
Architecture
Compiler and version
Build system
Last report
Remarks
Solaris 10
x86, amd64, sparc
GCC 8.1.0
CMake
2019/03/18
DragonFly BSD
amd64
gcc 8.3
autotools
2018/08/07 git-72854e63
IBM i
ppc64
gcc 6.3
autotools
2019/10/02 git-25320a3
QNX 7.0
x86_64
gcc 5.4.0
CMake
4.3.2
Supported platforms without known active users
Note: this list is incomplete and inaccurate and still needs some work.
OS and version
Architecture
Compiler and version
Build system
Remarks
Any Linux distribution
x86, amd64
gcc ?+, clang ?+, icc ?+
autotools, CMake
SunOS, Solaris
x86, amd64
SunPro
autotools, CMake
GNU/kFreeBSD
?
?
autotools, CMake
FreeBSD
?
?
autotools, CMake
NetBSD
?
?
autotools, CMake
OpenBSD
?
?
autotools, CMake
DragonFly BSD
amd64
gcc 8.3
autotools, CMake
HP-UX
?
?
autotools, CMake
GNU/Hurd
?
?
autotools
VxWorks 6.8
?
?
?
Windows CE
?
?
?
Windows UWP
?
?
?
OpenVMS
?
?
?
Unsupported platforms
OS and version
Architecture
Compiler and version
Remarks
QNX 6.3
?
gcc 3.3.5
see #3371, support was added by a user, but not contributed to upstream
Windows 10
ARM, ARM64
Visual Studio 2017
see #3366, probably only minor issues
For more details, see here.
Installation of binary packages
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
RPM
Bleeding edge packages
DEB
RPM
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
Build from sources
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.
ZeroMQ developers can also be found on the IRC channel #zeromq, on the
Freenode network (irc.freenode.net).
License
The project license is specified in COPYING and COPYING.LESSER.
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
Contributing
This project uses C4(Collective Code Construction Contract) process for contributions.