Skip to main content

Python bindings for ZeroDDS — pure-Rust DDS 1.4 / RTPS 2.5 / XTypes 1.3 implementation

Project description

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, DomainParticipant with assert_liveliness, ignore_*, contains_entity, get_discovered_*
  • BytesTopic / BytesWriter / BytesReader for opaque payload
  • ShapeTopic / ShapeWriter / ShapeReader + Shape dataclass 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 (@dataclass from IDL); then arbitrary DdsTypes 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zerodds-1.0.0rc3.tar.gz (1.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

zerodds-1.0.0rc3-cp38-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.8+Windows x86-64

zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

zerodds-1.0.0rc3-cp38-abi3-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

File details

Details for the file zerodds-1.0.0rc3.tar.gz.

File metadata

  • Download URL: zerodds-1.0.0rc3.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zerodds-1.0.0rc3.tar.gz
Algorithm Hash digest
SHA256 648dcf99c96b83d93273f332e97355e0f2979ae251a06da1899cabf22abc4229
MD5 1db3e77db86f1b34960a5f72cea9f643
BLAKE2b-256 0199321c1c9d5f66cf03fe24e0210f7ee55a82cfcf91c906f0a144753e4605c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc3.tar.gz:

Publisher: publish-pypi.yml on zero-objects/zero-dds

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zerodds-1.0.0rc3-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: zerodds-1.0.0rc3-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zerodds-1.0.0rc3-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4c736abfe86d51de4711f91fba4961fec4dda5f001064061520ac31c41cf100f
MD5 ff85a9d04613a9e639e18be989ff9d7c
BLAKE2b-256 b54bc6d8d3b6693bee4daf0974ddf984d61a9c65ca8837052dcf98d4614b2399

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc3-cp38-abi3-win_amd64.whl:

Publisher: publish-pypi.yml on zero-objects/zero-dds

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 afce55578c7719649453780739604d431d61a2acab29df72fb13e5bf1bf5c05e
MD5 d3cf03e3249dfa08f267c0596eae5563
BLAKE2b-256 86be6e5756dd4fba0251b8c3b05b245154e32275356dbc6c20d753dfaf8bceb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on zero-objects/zero-dds

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 507af243a342a70fa3058edaee8653d0b3646368be1cf9f6f3f9532bde564f19
MD5 9325d914491511c5d98be1ef9c2b48b3
BLAKE2b-256 6ca60beccaef00f15baba6479f910519809fd6a94ad54a307e932833aecf22e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on zero-objects/zero-dds

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zerodds-1.0.0rc3-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zerodds-1.0.0rc3-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98b75ec8f2ef56aa421aad257ddc13d5351b1a95a7a99d5d22f92a1fa988b992
MD5 bdee9f7808d164c5148f4da72cc9e29f
BLAKE2b-256 617596d3a697dbb4cfb3d5d6088a9cdb78536e8da12d42de901df9d90f70a60e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc3-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on zero-objects/zero-dds

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page