Go to file
pre-commit-ci[bot] 2f467f02c5 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-12-02 17:18:23 +00:00
.circleci upload circleci wheels from github 2024-04-24 09:39:25 +02:00
.github Bump mamba-org/setup-micromamba from 1 to 2 2024-11-01 14:18:09 +00:00
.obs OBS CI: use link_package instead of branch_package 2021-09-21 23:17:16 +01:00
RELICENSE run ruff check --fix 2024-04-02 11:08:57 +02:00
buildutils libsodium only has tags with -RELEASE now 2024-10-22 12:51:20 +02:00
cmake build with cmake (scikit-build-core) 2024-02-16 13:12:34 +01:00
docs [pre-commit.ci] auto fixes from pre-commit.com hooks 2024-12-02 17:18:23 +00:00
examples warn about and de-emphasize send/recv_pyobj 2024-10-22 15:30:45 +02:00
licenses fix handling of tornado Apache license 2024-11-27 13:04:47 +01:00
mypy_tests more annotations for zmq.asyncio.Socket 2024-10-02 08:41:59 +02:00
packaging update docs for new build system 2024-02-16 13:20:11 +01:00
perf address upcoming UP031 lint 2024-08-20 13:40:19 +02:00
tests preserve context reference when shadowing Socket classes 2024-10-22 12:00:49 +02:00
tools disable IPC in Windows wheels 2024-08-20 14:10:11 +02:00
zmq fix handling of tornado Apache license 2024-11-27 13:04:47 +01:00
.coveragerc add coverage to tests 2020-11-27 15:11:03 +01:00
.flake8 add ruff config, address some import lint 2024-04-02 10:08:31 +02:00
.gitignore fix handling of tornado Apache license 2024-11-27 13:04:47 +01:00
.mailmap run pre-commit fixer 2021-05-16 21:23:37 +02:00
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate 2024-12-02 17:18:11 +00:00
.prettierignore prettier: ignore externals 2021-08-01 12:27:38 +02:00
.readthedocs.yml build RTD with Python 3.11 2023-05-08 12:48:18 +02:00
AUTHORS.md adopt pydata-sphinx-theme 2022-03-02 10:22:14 +01:00
CMakeLists.txt bump bundled libsodium to 1.0.20 2024-10-22 11:36:26 +02:00
CONTRIBUTING.md fix handling of tornado Apache license 2024-11-27 13:04:47 +01:00
LICENSE.md move static metadata to pyproject.toml 2023-08-08 10:51:31 +02:00
MANIFEST.in ensure all libzmq COPYING files are included in sdists 2023-07-11 21:40:42 -07:00
README.md update docs for new build system 2024-02-16 13:20:11 +01:00
SECURITY.md pre-commit run 2021-07-29 12:03:44 +02:00
Vagrantfile adding Vagrantfile support 2016-11-25 20:23:12 -05:00
codecov.yml add coverage to tests 2020-11-27 15:11:03 +01:00
mypy.ini stop type checking for python 3.7 2024-03-11 10:57:57 +01:00
pyproject.toml Bump to 26.2.1.dev 2024-08-22 10:46:30 +02:00
pytest.ini explicit sys.path in tests 2024-08-20 11:25:58 +02:00
test-requirements.txt bump coverage in test env 2023-07-26 16:30:31 -07:00
zmqversion.py apply ruff fixes 2024-05-06 21:50:53 +02:00

README.md

PyZMQ: Python bindings for ØMQ

This package contains Python bindings for ZeroMQ. ØMQ is a lightweight and fast messaging implementation.

PyZMQ should work with any reasonable version of Python (≥ 3.7), as well as PyPy. The Cython backend used by CPython supports libzmq ≥ 2.1.4 (including 3.2.x and 4.x), but the CFFI backend used by PyPy only supports libzmq ≥ 3.2.2 (including 4.x).

For a summary of changes to pyzmq, see our changelog.

ØMQ 3.x, 4.x

PyZMQ fully supports the 3.x and 4.x APIs of libzmq, developed at zeromq/libzmq. No code to change, no flags to pass, just build pyzmq against the latest and it should work.

PyZMQ does not support the old libzmq 2 API on PyPy.

Documentation

See PyZMQ's Sphinx-generated documentation on Read the Docs for API details, and some notes on Python and Cython development. If you want to learn about using ØMQ in general, the excellent ØMQ Guide is the place to start, which has a Python version of every example. We also have some information on our wiki.

Downloading

Unless you specifically want to develop PyZMQ, we recommend downloading the PyZMQ source code or wheels from PyPI, or install with conda.

You can also get the latest source code from our GitHub repository, but building from the repository will require that you install recent Cython.

Building and installation

For more detail on building pyzmq, see our docs.

We build wheels for macOS, Windows, and Linux, so you can get a binary on those platforms with:

pip install pyzmq

but compiling from source with pip install pyzmq should work in most environments. Make sure you are using the latest pip, or it may not find the right wheels.

If the wheel doesn't work for some reason, or you want to force pyzmq to be compiled (this is often preferable if you already have libzmq installed and configured the way you want it), you can force installation from source with:

pip install --no-binary=pyzmq pyzmq

Old versions

pyzmq 16 drops support Python 2.6 and 3.2. If you need to use one of those Python versions, you can pin your pyzmq version to before 16:

pip install 'pyzmq<16'

For libzmq 2.0.x, use 'pyzmq<2.1'

pyzmq-2.1.11 was the last version of pyzmq to support Python 2.5, and pyzmq ≥ 2.2.0 requires Python ≥ 2.6. pyzmq-13.0.0 introduces PyPy support via CFFI, which only supports libzmq-3.2.2 and newer.

PyZMQ releases ≤ 2.2.0 matched libzmq versioning, but this is no longer the case, starting with PyZMQ 13.0.0 (it was the thirteenth release, so why not?). PyZMQ ≥ 13.0 follows semantic versioning conventions accounting only for PyZMQ itself.