zerodds-zenoh-bridge
Bidirektionale Bridge zwischen ZeroDDS-DCPS und Eclipse-Zenoh.
Pure-Rust-Mapping-Layer (Topic-Namen ↔ Zenoh-Key-Expressions, QoS-
Translation) ohne externe Deps; optionaler voll-funktionaler Live-
Bridge-Pfad ueber Feature zenoh-runtime. Safety classification:
STANDARD.
Architektur
DDS-Topic ────────► ZeroDDS DataReader
│ │
│ ▼ on_data
│ Bridge::forward
│ │
│ ▼ zenoh::publisher::put
│ Zenoh KeyExpr
│ │
│ ◄────────────────────┤ Zenoh Subscriber
│ │
│ Bridge::reverse
│ │
│ ▼ DataWriter::write
▼
DDS-Topic
QoS-Mapping (DDS → Zenoh)
| DDS-QoS | Zenoh-Aequivalent |
|---|---|
Reliability::Reliable |
Reliability::Reliable (Zenoh) |
Reliability::BestEffort |
Reliability::BestEffort |
Durability::TransientLocal |
CongestionControl::Block + Priority::DataHigh |
Durability::Volatile (Default) |
CongestionControl::Drop |
History::KeepLast(n) |
(Zenoh hat kein History-Cache; n>1 ignoriert) |
Partition |
KeyExpr-Praefix (<partition>/<topic>) |
Was ist drin
Pure-Rust-Layer (default, ohne zenoh-Dep):
TopicMap— bidirektionale Topic↔KeyExpr-Mapping-Datenstruktur.key_expr_for_topic(name, partition)— DDS-Topic → Zenoh-KeyExpr- Mapping (mit optionalem Partition-Praefix).dds_qos_to_zenoh(dds_qos)— QoS-Tabelle wie oben.
Live-Runtime (Feature zenoh-runtime):
ZenohBridge/ZenohBridgeBuilder/BridgeError— Async-Bridge- Lifecycle (start / shutdown / forward / reverse).
Schichten-Position
Layer 5 — Bridges (Tier-C). Sitzt auf
zerodds-dcps (DCPS-API) und
zerodds-qos (QoS-Policies). Live-Runtime nutzt zenoh = 1
tokio.
Quickstart
Pure-Rust-Mapping (default):
use ;
let mut map = new;
map.add;
assert_eq!;
assert_eq!;
Live-Runtime (Feature zenoh-runtime):
[]
= { = "1.0.0-rc.1", = ["zenoh-runtime"] }
use ;
let bridge = new
.with_zenoh_config
.build
.await?;
bridge.forward_topic.await?;
Feature-Flags
| Feature | Default | Zweck |
|---|---|---|
std |
✅ | std-Aufruf. |
zenoh-runtime |
❌ | Live-Bridge-Pfad mit zenoh = 1 + tokio (ggf. höhere MSRV als ZeroDDS-Default). |
Stabilitaet
1.0.0-rc.1. Public-API + Mapping-Logik sind RC1-stabil. Live-
Runtime-API folgt zenoh = 1.x und kann sich mit Zenoh-Major-Bumps
aendern.
Tests
6 Tests grün (5 unit + 1 doc).
Lizenz
Apache-2.0. Siehe LICENSE.
Siehe auch
docs/release/rc1-reviews/zenoh-bridge.md— RC1-Review.- Eclipse Zenoh — Upstream-Projekt.