Every claim ZeroDDS makes is backed by source, tests, cross-vendor verification and reproducible measurements.
doneSpec coverage matrix
Each row links to the canonical specification and to our section-by-section implementation audit (HTML rendering of the audit ledger). The full overview is on spec-coverage.
| Specification | Canonical | Audit | Done | Partial | Open | n/a |
|---|---|---|---|---|---|---|
| OMG DDS-DCPS 1.4 | omg.org | audit | 100 | 0 | 0 | 2 |
| OMG DDSI-RTPS 2.5 | omg.org | audit | 121 | 0 | 0 | 3 |
| OMG DDS-XTypes 1.3 | omg.org | audit | 82 | 0 | 0 | 1 |
| OMG DDS-Security 1.2 | omg.org | audit | 50 | 0 | 0 | 3 |
| OMG DDS-XML 1.0 | omg.org | audit | 73 | 0 | 0 | 15 |
| OMG DDS-XRCE 1.0 | omg.org | audit | 82 | 0 | 0 | 13 |
| OMG DDS-RPC 1.0 | omg.org | audit | 94 | 0 | 0 | 10 |
| OMG DDS-PSM-Cxx 1.0 | omg.org | audit | 103 | 0 | 0 | 19 |
| OMG DDS-Java-PSM 1.0 | omg.org | audit | 156 | 0 | 0 | 15 |
| OMG DDS4CCM 1.1 | omg.org | audit | 24 | 0 | 0 | 10 |
| OMG IDL 4.2 | omg.org | audit | 649 | 4 | 0 | 24 |
| OMG CORBA 3.3 | omg.org | audit | 51 | 0 | 0 | 12 |
| DDS-AMQP 1.0 (vendor) | our PDF | audit | 123 | 0 | 0 | 1 |
| DDS-TS 1.0 (vendor) | our PDF | audit | 59 | 0 | 0 | 13 |
Performance — measured, not asserted
The numbers below are produced by the public benchmark harness in tools/bench-suite/ on a Linux x86_64 reference host (AMD Ryzen Threadripper PRO 3955WX, 24 cores, 47 GiB RAM, Linux 6.1 vanilla, no preempt-rt, no CPU pinning unless noted). Run it yourself with cargo bench -p zerodds-bench-suite — full HdrHistogram output to stdout.
Cross-vendor IDL-typed roundtrip
Single-process IDL-typed pub/sub roundtrip, same payload (64 B), same wire-format (XCDR2). Lower is better.
| Stack | p50 latency | vs. ZeroDDS | Sample loss |
|---|---|---|---|
| ZeroDDS Tier-A | ~166 µs | — | 0 % |
| Cyclone DDS 0.10.2 | ~225 µs | +35 % | 0 % |
| RTI Connext (RT-priority) | ~215 µs | +30 % | 0 % |
| FastDDS | ~415 µs | +150 % | 0 % |
The benchmark driver lives in tools/bench-suite/; per-vendor harnesses (Cyclone / RTI / FastDDS C++ apps) are kept under tests/perf/dds-roundtrip-bench/ in the development tree and reproduced via the in-tree just bench-roundtrip recipe.
Raw UDP roundtrip floor (Cyclone vs. ZeroDDS, vanilla loopback)
This compares raw UDP roundtrip (no DDS) against Cyclone's full DCPS roundtrip. It establishes the Linux-userspace UDP floor on the bench host.
| Path | p50 | p99 | Notes |
|---|---|---|---|
| ZeroDDS raw UDP, 64 B | 41.1 µs | 86.1 µs | UDP-userspace floor |
| Cyclone DDS reliable, 64 B | 66.5 µs | 93.0 µs | full DCPS stack |
| Cyclone DDS best-effort, 64 B | 67.2 µs | 115.5 µs | full DCPS, no ACK |
Test driver: tools/bench-suite/src/bin/roundtrip_1us.rs.
Throughput & primitives
| Workload | Number | Test case |
|---|---|---|
| RTPS-UDP throughput LAN | ≈ 4 GiB/s | transports_e2e.rs |
| Shared-memory roundtrip | < 5 µs | crates/transport-shm |
| AES-GCM encrypt (Apple M aarch64) | 4.3 GiB/s | tools/perf aes-gcm |
| RTPS fragmentation @ 30 % packet loss | byte-identical with Cyclone | rtps_fragmented.rs |
Cross-vendor interoperability
Wire-byte-identical with the major DDS implementations on RTPS 2.5; live verified against external brokers and DDS stacks. Live cross-vendor verification uses the OMG Shapes Demo as the reference scenario — same IDL, same wire, every vendor against every other. The interop harness scripts (tests/interop/) live in the development tree alongside docker-compose recipes for each external stack.
| Counterpart | Wire | Live | Evidence |
|---|---|---|---|
| Cyclone DDS 0.10.2 | ✓ | ✓ | Shapes-demo loopback + recorded XCDR2 fixtures in crates/discovery/tests/fixtures/ |
| Fast DDS / Fast-RTPS | ✓ | ✓ | fastdds_live_spdp.rs |
| OpenDDS | ✓ | ◐ | discovery/tests/fixtures/ (recorded XCDR2) |
| RTI Connext | ✓ | ✓ | D.5e perf-roundtrip (in-tree, gated on RTI license) |
| mosquitto (MQTT 5.0) | — | ✓ | mqtt cross_vendor.rs |
| RabbitMQ (AMQP 1.0) | — | ✓ | amqp cross_vendor.rs |
| libcoap | — | ✓ | coap cross_vendor.rs |
| omniORB (CORBA) | — | ✓ | corba cross_vendor.rs |
| grpcurl + h2spec | — | ✓ | grpc cross_vendor.rs |
| ROS 2 (rclcpp + Cyclone RMW) | — | ✓ | ros2 cross_vendor.rs |
Audit-ready
- Test count (workspace)
- more than 11,000
- Documentation coverage
- 100 % of
pubitems unsafeblocks- each carries a
// SAFETY:comment, lint-enforced - Hot-path allocation
- lint-enforced via
dds_no_realloc_in_hot_path - Foundation crate dependencies
- zero transitive cargo deps
- Clippy
--workspace --all-targets -- -D warningsgreen- License
- Apache-2.0, SPDX-headered per file
- Supply chain
cargo deny+cargo auditin CI- Reproducible builds
- pinned MSRV (1.88), pinned
Cargo.lock
Sources
- Spec-coverage matrix — section-by-section audit ledgers as HTML, links to omg.org / OASIS / IETF for canonical specs.
tools/bench-suite/— public benchmark harness, every reported number reproducible withcargo bench -p zerodds-bench-suite.crates/— cross-vendor interop tests live next to each bridge crate astests/cross_vendor.rs.- CHANGELOG — every release entry with spec references and public-API listings.