NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #284 most downloaded on PyPI
Python bindings for 0MQ
Last release 1 months ago
20 Aug 2026
Ships unpredictably
gaps range from 2 weeks to 12 months
Most releases are documented
notes for 44 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
16 years old
107 releases · first in 2010
See release notes , or pyzmq on PyPI .
See release notes , or pyzmq on PyPI .
One column per quarter.
See release notes , or pyzmq on PyPI .
See release notes , or pyzmq on PyPI .
See release notes , or pyzmq on PyPI .
See release notes , or pyzmq on PyPI .
See release notes , or pyzmq on PyPI .
See release notes , or pyzmq on PyPI .
See release notes , or pyzmq on PyPI .
See release notes , or pyzmq on PyPI .
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
See [release notes][], or [pyzmq on PyPI][].
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
- First release with wheels for Python 3.11 (thanks cibuildwheel!).
Improvements:
First release with wheels for Python 3.11 (thanks cibuildwheel!).
linux aarch64 wheels now bundle the same libzmq (4.3.4) as all other builds, thanks to switching to native arm builds on CircleCI.
Fixes:
Some type annotation fixes in devices.
- Use zmq.Event enums in parse_monitor_message for nicer reprs
Improvements:
Use zmq.Event enums in parse_monitor_message for nicer reprs
Fixes:
Fix building bundled libzmq with ZMQ_DRAFT_API=1
Fix subclassing zmq.Context with additional arguments in the constructor. Subclasses may now have full control over the signature, rather than purely adding keyword-only arguments
Typos and other small fixes
Fixing some regressions in 23.0:
Fixing some regressions in 23.0:
Fix global name of zmq.EVENT_HANDSHAKE_* constants
Fix constants missing when using import zmq.green as zmq
Compatibility fixes:
zmq.utils.monitor.recv_monitor_message() now supports async Sockets.
Fix build with mingw
- Remove all use of deprecated stdlib distutils
Changes:
all zmq constants are now available as Python enums (e.g. zmq.SocketType.PULL , zmq.SocketOption.IDENTITY ), generated statically from zmq.h instead of at compile-time. This means that checks for the presence of a constant ( hasattr(zmq, 'RADIO') ) is not a valid check for the presence of a feature. This practice has never been robust, but it may have worked sometimes. Use direct checks via e.g. zmq.has() or zmq.zmq_version_info() .
A bit more type coverage of Context.term and Context.socket
Compatibility fixes:
Remove all use of deprecated stdlib distutils
Update to Cython 0.29.30 (required for Python 3.11 compatibility)
Compatibility with Python 3.11.0b1
Maintenance changes:
Switch to myst for docs
Deprecate zmq.utils.strtypes , now unused
Updates to autoformatting, linting
New wheels for PyPy 3.9
Manylinux wheels for CPython 3.10 are based on manylinux2014
Nothing published for this version
Nothing published for this version
- Fix strlcpy compilation issues on alpine, freebsd. Adds new build-time dependency on packaging .
Fixes:
Fix strlcpy compilation issues on alpine, freebsd. Adds new build-time dependency on packaging .
In event-loop integration: warn instead of raise when triggering callback on a socket whose context has been closed.
Bundled libzmq in wheels backport a patch to avoid crashes due to inappropriate closing of libsodium’s random generator when using CurveZMQ.
Changes:
New ResourceWarnings when contexts and sockets are closed by garbage collection, which can be a source of hangs and leaks (matches open files)
Fix bundling of wepoll on Windows.
Fix bundling of wepoll on Windows.
- deprecate zmq.utils.jsonapi and remove support for non-stdlib json implementations in send/recv_json . Custom serialization methods should be used i…
New features:
IPC support on Windows: where available (64bit Windows wheels and bundled libzmq when compiling from source, via wepoll), IPC should work on appropriate Windows versions.
Nicer reprs of contexts and sockets
Memory allocated by recv(copy=False) is no longer read-only
asyncio: Always reference current loop instead of attaching to the current loop at instantiation time. This fixes e.g. contexts and/or sockets instantiated prior to a call to asyncio.run .
ssh: $PYZMQ_PARAMIKO_HOST_KEY_POLICY can be used to set the missing host key policy, e.g. AutoAdd .
Fixes:
Fix memory corruption in gevent integration
Fix memoryview(zmq.Frame) with cffi backend
Fix threadsafety issue when closing sockets
Changes:
pypy Windows wheels are 64b-only, following an update in cibuildwheel 2.0
deprecate zmq.utils.jsonapi and remove support for non-stdlib json implementations in send/recv_json . Custom serialization methods should be used instead.
- asyncio: experimental support for Proactor eventloop if tornado 6.1 is available by running a selector in a background thread.
New features:
asyncio: experimental support for Proactor eventloop if tornado 6.1 is available by running a selector in a background thread.
Fixes:
Windows: fix type of socket.FD option in win-amd64
asyncio: Cancel timers when using HWM with async Sockets
Other changes:
Windows: update bundled libzmq dll URLs for Windows. Windows wheels no longer include concrt140.dll.
adopt pre-commit for formatting, linting
- Fix fork-safety bug in garbage collection thread (regression in 20.0) when using subprocesses.
Fix fork-safety bug in garbage collection thread (regression in 20.0) when using subprocesses.
Start uploading universal wheels for ARM Macs.
- Add workaround for bug in DLL loading for Windows wheels with conda Python >= 3.8
Add workaround for bug in DLL loading for Windows wheels with conda Python >= 3.8
- Fix type of Frame.bytes for non-copying recvs with CFFI backend (regression in 21.0)
Fix type of Frame.bytes for non-copying recvs with CFFI backend (regression in 21.0)
Add manylinux wheels for pypy
This is a major release due to changes in wheels and building on Windows. Code changes from 21.0 are minimal.
This is a major release due to changes in wheels and building on Windows. Code changes from 21.0 are minimal.
Some typing fixes
Bump bundled libzmq to 4.3.4
Strip unused symbols in manylinux wheels, resulting in dramatically smaller binaries. This matches behavior in v20 and earlier.
Windows CPython wheels bundle public libzmq binary builds, instead of building libzmq as a Python Extension. This means they include libsodium for the first time.
Our own implementation of bundling libzmq into pyzmq on Windows is removed, instead relying on delvewheel (or installations putting dlls on %PATH%) to bundle dependency dlls.
The (new in 21.0) Windows wheels for PyPy likely require the Windows vcredist package. This may have always been the case, but the delvewheel approach doesn’t seem to work.
Windows + PyPy is now the only remaining case where a wheel has libzmq built as an Extension. All other builds ship libzmq built using its own tooling, which should result in better, more stable builds.
- Fix wheels on macOS older than 10.15 (sets MACOSX_DEPLOYMENT_TARGET to 10.9, matching wheel ABI tag).
Fix wheels on macOS older than 10.15 (sets MACOSX_DEPLOYMENT_TARGET to 10.9, matching wheel ABI tag).
pyzmq-21.0.1 only changes CI configuration for Windows wheels (built with VS2017 instead of VS2019), fixing compatibility with some older Windows on a
pyzmq-21.0.1 only changes CI configuration for Windows wheels (built with VS2017 instead of VS2019), fixing compatibility with some older Windows on all Pythons and removing requirement of VC++ redistributable package on latest Windows and Python < 3.8.
There still appears to be a compatibility issue with Windows 7 that will be fixed ASAP. Until then, you can pin pip install pyzmq<21 .
There are no changes from 21.0.0 for other platforms.
Nothing published for this version
Nothing published for this version
- Regenerate Cython sources with 0.29.21 in sdists for compatibility with Python 3.9
Regenerate Cython sources with 0.29.21 in sdists for compatibility with Python 3.9
Handle underlying socket being closed in ZMQStream with warning instead of error
Improvements to socket cleanup during process teardown
Fix debug-builds on Windows
Avoid importing ctypes during startup on Windows
Documentation improvements
Raise AttributeError instead of ZMQError(EINVAL) on attempts to read write-only attributes, for compatibility with mocking
- Fix TypeError during garbage collection
Fix TypeError during garbage collection
Fix compilation with some C++ compilers
Fixes in tests and examples
Nothing published for this version
- Fix race condition when shutting down ZAP thread while events are still processing (only affects tests)
Fix race condition when shutting down ZAP thread while events are still processing (only affects tests)
Publish wheels for Python 3.8 on all platforms
Stop publishing wheels for Python 3.4 on Windows
Sources generated with Cython 0.29.14
- Compatibility with Python 3.8 release candidate by regenerating Cython courses with Cython 0.29.13
Compatibility with Python 3.8 release candidate by regenerating Cython courses with Cython 0.29.13
bump bundled libzmq to 4.3.2
handle cancelled futures in asyncio
make zmq.Context.instance() fork-safe
fix errors in zmq.Context.destroy() when opening and closing many sockets
zmq.Context.instance fork-safezmq.Context.destroy when opening and closing many sockets- Compatibility with Python 3.8 prerelease by regenerating Cython sources with Cython 0.29.10.
Compatibility with Python 3.8 prerelease by regenerating Cython sources with Cython 0.29.10.
Fix language_level=2 in Cython sources, for compatibility with Cython 0.30
Show missing path for ENOENT errors on ipc connections.
Fixes installation from source on non-unicode locales with Python 3. There are no code changes in this release.
Fixes installation from source on non-unicode locales with Python 3. There are no code changes in this release.
- Update bundled libzmq to 4.3.1 (fixes CVE-2019-6250)
Update bundled libzmq to 4.3.1 (fixes CVE-2019-6250)
Added proxy_steerable() and zmq.devices.ProxySteerable
Added bind_{in|out|mon}_to_random_port variants for proxy device methods
Performance improvements for sends with asyncio
Fix sending memoryviews/bytearrays with cffi backend
~zmq.proxy_steerable and {class}zmq.devices.ProxySteerablebind_{in|out|mon}_to_random_port variants for proxy device methodsYour coding agent can read these notes before it upgrades. Set up the MCP server →