pyzmq
Python bindings for 0MQ
Decision gist · record as of 2026-08-14
Yes. PyZMQ is actively maintained, widely used (top 1000 on PyPI), has no known vulnerabilities, and carries a permissive BSD license. Install friction is moderate due to C compilation, but wheels are available for most platforms. It is the standard choice for Python developers needing ZeroMQ bindings.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires libzmq ≥ 3.2.2 to be installed on the system; wheel installation handles this on most platforms, but source builds require libzmq development headers.
- Medium install friction due to compiled C extensions, but wheels are available for common platforms (macOS, Windows, Linux across multiple architectures).
- The package is actively maintained with recent releases and no known vulnerabilities.
License · maintenance · safety
permissive license (permissive) — BSD 3-Clause License is permissive and imposes minimal restrictions. You can use, modify, and distribute pyzmq in commercial and private projects without copyleft obligations, provided you include the original license notice.
last release 2025-09-08 (340 days) · last repo commit 2026-08-13 · 4,161 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 109,452,815 downloads/mo, #322 on PyPI
Alternatives
Verify before relying
pip install pyzmq
import pyzmq
context = pyzmq.Context()
socket = context.socket(pyzmq.PUB)
socket.send(b"Hello")- Whether pre-built wheels include bundled libzmq or require system installation
- Performance characteristics and latency guarantees compared to other messaging solutions
- Specific socket patterns and APIs available beyond basic publish-subscribe and request-reply
What it is and what it does
PyZMQ is a Python wrapper around ZeroMQ, a C library for building distributed messaging systems. It exposes ØMQ's socket-based API to Python, allowing you to build messaging patterns across processes and machines. The package supports Python versions 3.8 and newer, including PyPy via CFFI, and works with libzmq 3.x and 4.x APIs without code changes.
The library is designed for scenarios where you need fast, asynchronous message passing without the overhead of a traditional message broker. It handles the low-level socket management and protocol details, letting you focus on application logic. Installation is straightforward via pip on most platforms thanks to pre-built wheels, though it depends on cffi and requires libzmq to be available at runtime.
Use it for
- Building pub-sub systems where publishers send messages to multiple subscribers without direct connections
- Implementing request-reply patterns for distributed communication between services
- Creating message queues and task distribution systems across multiple worker processes
- Real-time data pipelines where low-latency, asynchronous messaging is critical
- Inter-process communication in scientific computing and data analysis workflows
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
PyZMQ is actively maintained, widely used (top 1000 on PyPI), has no known vulnerabilities, and carries a permissive BSD license. Install friction is moderate due to C compilation, but wheels are available for most platforms. It is the standard choice for Python developers needing ZeroMQ bindings.
Install
pyzmq on PyPI
Before you install
Medium install friction due to compiled C extensions, but wheels are available for common platforms (macOS, Windows, Linux across multiple architectures). The package is actively maintained with recent releases and no known vulnerabilities. Requires cffi as a runtime dependency.
Requires libzmq ≥ 3.2.2 to be installed on the system; wheel installation handles this on most platforms, but source builds require libzmq development headers.
License in practice
BSD 3-Clause License is permissive and imposes minimal restrictions. You can use, modify, and distribute pyzmq in commercial and private projects without copyleft obligations, provided you include the original license notice.
Quickstart
pip install pyzmq
import pyzmq
context = pyzmq.Context()
socket = context.socket(pyzmq.PUB)
socket.send(b"Hello")
Verify before relying
- Whether pre-built wheels include bundled libzmq or require system installation
- Performance characteristics and latency guarantees compared to other messaging solutions
- Specific socket patterns and APIs available beyond basic publish-subscribe and request-reply
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagecffi |
| Maintenance | Actively maintained 340 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 109,452,815 / month, #322 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Science/ResearchIntended Audience :: System AdministratorsLicense :: OSI Approved :: BSD LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: System :: Networking |
Evidence: pyzmq-27.1.0-cp310-cp310-macosx_10_15_universal2.whl; pyzmq-27.1.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl; pyzmq-27.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pyzmq-27.1.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl; pyzmq-27.1.0-cp310-cp310-musllinux_1_2_aarch64.whl; pyzmq-27.1.0-cp310-cp310-musllinux_1_2_i686.whl; pyzmq-27.1.0-cp310-cp310-musllinux_1_2_x86_64.whl; pyzmq-27.1.0-cp310-cp310-win32.whl; pyzmq-27.1.0-cp310-cp310-win_amd64.whl; pyzmq-27.1.0-cp310-cp310-win_arm64.whl; pyzmq-27.1.0-cp311-cp311-macosx_10_15_universal2.whl; pyzmq-27.1.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl; pyzmq-27.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl; pyzmq-27.1.0-cp311-cp311-musllinux_1_2_aarch64.whl; pyzmq-27.1.0-cp311-cp311-musllinux_1_2_i686.whl; pyzmq-27.1.0-cp311-cp311-musllinux_1_2_x86_64.whl; pyzmq-27.1.0-cp311-cp311-win32.whl; pyzmq-27.1.0-cp311-cp311-win_amd64.whl; pyzmq-27.1.0-cp311-cp311-win_arm64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “asynchronous inter-process communication”
- pyzmqPyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight…
- libucxx-cu12Provides Python bindings for UCX (Unified Communication X), enabling…
- ucxx-cu12ucxx-cu12 provides Python bindings for the Unified Communication X…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
Provides Python bindings for Slack's Web API, webhooks, Socket Mode, OAuth, and other platform APIs, enabling apps to send messages, manage files, verify requests, and interact with Slack workspaces.
Install it if you need to integrate Python applications with Slack—whether for bots, notifications, or custom workflows.
See also ibmmq · pynng · zmq · fedora-messaging · python-qpid-proton · kombu · nats-py · pyobjc-framework-libxpc · lcm · stomp.py