This release is a pre-release and may not be stable for production use.
zerodds (Python)
Python bindings for ZeroDDS, the native Rust DDS implementation.
Installation (Dev-Setup)
# Maturin in a virtualenv
python3 -m venv .venv
source .venv/bin/activate
pip install maturin pytest
# Build + install in develop mode (rebuild on code change)
cd crates/py
maturin develop --features extension-module
Schnellstart
import zerodds
factory = zerodds.DomainParticipantFactory.instance()
participant = factory.create_participant(0)
topic = participant.create_bytes_topic("Chatter")
publisher = participant.create_publisher()
writer = publisher.create_bytes_writer(topic)
subscriber = participant.create_subscriber()
reader = subscriber.create_bytes_reader(topic)
writer.wait_for_matched_subscription(1, timeout_secs=5.0)
reader.wait_for_matched_publication(1, timeout_secs=5.0)
writer.write(b"hello world")
reader.wait_for_data(timeout_secs=3.0)
for payload in reader.take():
print(payload)
Tests
pytest crates/py/python/tests/
Scope (current version)
DomainParticipantFactory,DomainParticipantwithassert_liveliness,ignore_*,contains_entity,get_discovered_*BytesTopic/BytesWriter/BytesReaderfor opaque payloadShapeTopic/ShapeWriter/ShapeReader+Shapedataclass for cross-vendor interop against Cyclone/Fast-DDS ShapesDemo- Status getters:
publication_matched_status,liveliness_lost_status,subscription_matched_status,sample_lost_status, … GuardCondition+WaitSet- Sync primitives:
wait_for_matched_*,wait_for_data - GIL release during all blocking calls
Roadmap
- IDL→Python dataclass generator (
@dataclassfrom IDL); then arbitraryDdsTypes work natively from Python. - ROS2 pytest integration + multi-process live tests + sphinx docs.
- Load QoS profiles from XML/YAML (analogous to the Fast-DDS QoS Profiles Manager).
Architecture
The Rust crate zerodds-py builds as a cdylib (zerodds._core). The
Python wrapper python/zerodds/__init__.py re-exports and adds
pythonic sugar where needed.
The Rust core is identical to the Rust API — no Python- specific business logic, only type conversions + GIL release. This keeps the binding thin and keeps the DDS semantics in one place.
Metadata
Release files for zerodds 1.0.0rc3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zerodds-1.0.0rc3.tar.gz | 1.6 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| zerodds-1.0.0rc3-cp38-abi3-win_amd64.whl | CPython 3.8 | abi3 | Windows x86-64 | Details |
| zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.8 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.8 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| zerodds-1.0.0rc3-cp38-abi3-macosx_11_0_arm64.whl | CPython 3.8 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 6.0 MB
Release files / zerodds-1.0.0rc3.tar.gz
| Download URL | zerodds-1.0.0rc3.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
648dcf99c96b83d93273f332e97355e0f2979ae251a06da1899cabf22abc4229
|
|
BLAKE2b-256 checksum How to use checksums |
0199321c1c9d5f66cf03fe24e0210f7ee55a82cfcf91c906f0a144753e4605c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.
Transparency logRelease files / zerodds-1.0.0rc3-cp38-abi3-win_amd64.whl
| Download URL | zerodds-1.0.0rc3-cp38-abi3-win_amd64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.8 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
4c736abfe86d51de4711f91fba4961fec4dda5f001064061520ac31c41cf100f
|
|
BLAKE2b-256 checksum How to use checksums |
b54bc6d8d3b6693bee4daf0974ddf984d61a9c65ca8837052dcf98d4614b2399
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.
Transparency logRelease files / zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
afce55578c7719649453780739604d431d61a2acab29df72fb13e5bf1bf5c05e
|
|
BLAKE2b-256 checksum How to use checksums |
86be6e5756dd4fba0251b8c3b05b245154e32275356dbc6c20d753dfaf8bceb3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.
Transparency logRelease files / zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
507af243a342a70fa3058edaee8653d0b3646368be1cf9f6f3f9532bde564f19
|
|
BLAKE2b-256 checksum How to use checksums |
6ca60beccaef00f15baba6479f910519809fd6a94ad54a307e932833aecf22e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.
Transparency logRelease files / zerodds-1.0.0rc3-cp38-abi3-macosx_11_0_arm64.whl
| Download URL | zerodds-1.0.0rc3-cp38-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.8 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
98b75ec8f2ef56aa421aad257ddc13d5351b1a95a7a99d5d22f92a1fa988b992
|
|
BLAKE2b-256 checksum How to use checksums |
617596d3a697dbb4cfb3d5d6088a9cdb78536e8da12d42de901df9d90f70a60e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 20, 2026.
Transparency log