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 für ZeroDDS, die native Rust-DDS-Implementation.

Installation (Dev-Setup)

# Maturin in einem 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 (aktuelle Version)

  • DomainParticipantFactory, DomainParticipant mit assert_liveliness, ignore_*, contains_entity, get_discovered_*
  • BytesTopic / BytesWriter / BytesReader für opaken Payload
  • ShapeTopic / ShapeWriter / ShapeReader + Shape-Dataclass für Cross-Vendor-Interop gegen Cyclone-/Fast-DDS-ShapesDemo
  • Status-Getter: publication_matched_status, liveliness_lost_status, subscription_matched_status, sample_lost_status, …
  • GuardCondition + WaitSet
  • Sync-Primitives: wait_for_matched_*, wait_for_data
  • GIL-Release während allen blocking Calls

Roadmap

  • IDL→Python-Dataclass-Generator (@dataclass aus IDL); dann funktionieren beliebige DdsType native aus Python.
  • ROS2-pytest-Integration + Multi-Process-Live-Tests + sphinx-Docs.
  • QoS-Profile aus XML/YAML laden (analog Fast-DDS QoS Profiles Manager).

Architektur

Das Rust-Crate zerodds-py baut als cdylib (zerodds._core). Der Python-Wrapper python/zerodds/__init__.py re-exportiert und fügt bei Bedarf pythonischen Zucker hinzu.

Der Rust-Kern ist identisch zum Rust-API — keine Python- spezifische Business-Logik, nur Type-Conversions + GIL-Release. Das hält das Binding dünn und hält die DDS-Semantik auf einer Stelle.

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.0rc2.tar.gz (1.3 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.0rc2-cp38-abi3-win_amd64.whl (893.7 kB view details)

Uploaded CPython 3.8+Windows x86-64

zerodds-1.0.0rc2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

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

zerodds-1.0.0rc2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (992.0 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

zerodds-1.0.0rc2-cp38-abi3-macosx_11_0_arm64.whl (932.6 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: zerodds-1.0.0rc2.tar.gz
  • Upload date:
  • Size: 1.3 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.0rc2.tar.gz
Algorithm Hash digest
SHA256 29db5125ab20633b7fa934f611850fb278baa1f44a13c2ebc2c9dd059ae02fca
MD5 11d8cdb7983df4e6d338a87b853300dc
BLAKE2b-256 13bf6b70684399d04cd8bbe02c704d9c9a574b7c2a96cd6d60f3272108d92648

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc2.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.0rc2-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: zerodds-1.0.0rc2-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 893.7 kB
  • 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.0rc2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 40c3fce800019c567d720c057b8268e9002ed11eb65209d3d5daf633c53b4f76
MD5 5ead2509fb3c941cff5c12615bd18f2d
BLAKE2b-256 7aa5752f563b6535a52c10f03b4b31ef34dc60afcdbac112664702c1eedc3621

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc2-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.0rc2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for zerodds-1.0.0rc2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4bf6d49a13e8b03dc044d05b31d8dc86da7812274a25caa6fb7b1cbca0f94c17
MD5 845a8b227f3c92e76f9d8ee4c57379f2
BLAKE2b-256 5cfded21c0f7ad40d5b5043620095be8fb89cf6ee0c9fbd6633b2be0242e40a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc2-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.0rc2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for zerodds-1.0.0rc2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e507f33c2232528bdf4c3d3ed8043a287d4e204066bf01c8dfa1e12b8ed7af81
MD5 d4e2990e9734594e5224d5c5eb9ca3ed
BLAKE2b-256 13d68a39a45d4246decb219e66f1cfe391129d9a57c9251f1bfdb122ba6c2749

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc2-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.0rc2-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zerodds-1.0.0rc2-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65e35178b817048a5dcb5e35910862f5e914e5f5a2724c3512d349c8066e115b
MD5 55bcf138e4864098725ef30d2634ae90
BLAKE2b-256 dee3a42da68c62ed5f31b8f22e4844fea5dc2cb6aa921016953ebbf84813e9da

See more details on using hashes here.

Provenance

The following attestation bundles were made for zerodds-1.0.0rc2-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