Metadata-Version: 2.5
Name: dds-frame
Version: 0.0.0
Summary: DDS-native request/reply and publish/subscribe communication frame
Project-URL: Homepage, https://github.com/ohara-lab-su/dds_frame
Project-URL: Documentation, https://ohara-lab-su.github.io/dds_frame/
Project-URL: Repository, https://github.com/ohara-lab-su/dds_frame
Project-URL: Issues, https://github.com/ohara-lab-su/dds_frame/issues
Author: K.NAKADA
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: CycloneDDS,DDS,RPC,device-control,publish-subscribe
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: cyclonedds<12,>=11.0.1
Requires-Dist: msgpack<2,>=1.0
Description-Content-Type: text/markdown

# dds_frame

[![en](https://img.shields.io/badge/lang-en-red.svg)](https://github.com/ohara-lab-su/dds_frame/blob/main/README.md)
[![ja](https://img.shields.io/badge/lang-ja-blue.svg)](https://github.com/ohara-lab-su/dds_frame/blob/main/README.ja.md)

[![GitHub](https://img.shields.io/badge/GitHub-ohara--lab--su%2Fdds_frame-181717?logo=github)](https://github.com/ohara-lab-su/dds_frame/)
[![GitHub Pages](https://img.shields.io/badge/GitHub%20Pages-Documentation-222222?logo=githubpages&logoColor=white)](https://ohara-lab-su.github.io/dds_frame/en/)
[![Ohara Lab](https://img.shields.io/badge/Ohara%20Lab-Home-4B5563?logo=homeassistant&logoColor=white)](https://ohara-lab-su.github.io/index.en.html)


> **TESTING PHASE — NOT PRODUCTION READY.** Only minimal tests have been performed. Basic DDS Pub/Sub message reception
> has been observed, but an `InvalidSample` reception error was reported and the subsequent fix has not been verified by
> an end-to-end test. RPC and other runtime scenarios are not comprehensively validated. Do not assume operational
> reliability.

A small DDS communication frame alongside `grpc_frame` and `ese774_frame`. It does not replace the SUSANOO architecture
or impose a uniform device API. Device classes are independent of transport.

- Transparent RPC with `DeviceServer`, `DeviceClient`, and `AsyncDeviceClient`.
- Native DDS pub/sub with `Publisher` and `Subscriber`, independent of RPC.

```bash
python -m pip install .
```

Run examples as documented in [examples/README.md](examples/README.md). Design
constraints: [docs/ja/design.md](docs/ja/design.md).

**Known limitations:** The wire IDL is not ROS 2 compatible. Strict exactly-once execution is not guaranteed. QoS
configuration and generated device-specific `.pyi` stubs are not yet provided.
