Expand description
Crate zerodds-zenoh-bridge. Safety classification: STANDARD.
ZeroDDS ↔ Eclipse-Zenoh Bridge — no_std + alloc (pure-Rust
Mapping-Layer ohne zenoh-Dep) plus Feature-gated zenoh-runtime
fuer den voll-funktionalen Live-Bridge-Pfad.
Verbindet einen ZeroDDS-DomainParticipant mit einer Zenoh-Session, sodass DDS-Topics auf Zenoh-Key-Expressions gemappt werden und in beide Richtungen gepumpt werden.
§Architektur
DDS-Topic ────────► ZeroDDS DataReader
│ │
│ ▼ on_data
│ Bridge::forward
│ │
│ ▼ zenoh::publisher::put
│ Zenoh KeyExpr
│ │
│ ◄────────────────────┤ Zenoh Subscriber
│ │
│ Bridge::reverse
│ │
│ ▼ DataWriter::write
▼
DDS-Topic§Feature-Gating
- default — Skeleton-Crate ohne
zenoh-Dep. Topic-Mapping- Logik + Tests laufen pure-Rust, sodass das Workspace-CI ohne externe Dependencies bleibt. - zenoh-runtime — bringt
zenoh = "1"+tokio. Damit istZenohBridge::startvoll funktional.
§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>) |
§Spec-Referenz
Es gibt keine OMG-Spec fuer Zenoh-Bridges. Diese Crate folgt dem
De-facto-Pattern von ZettaScale’s zenoh-bridge-dds (siehe
https://github.com/eclipse-zenoh/zenoh-plugin-dds), aber als
eigenstaendige Rust-Library statt Plugin.
Structs§
- Topic
Map - Topic-Map: bidirektionale Zuordnung DDS-Topic ↔ Zenoh-KeyExpr.
Functions§
- dds_
qos_ to_ zenoh - Mapped einen DDS-QoS-Tupel auf Zenoh-Reliability + Congestion-Control.
- key_
expr_ for_ topic - Bildet einen DDS-Topic-Namen (mit optionalen Partition-Tags) auf eine
Zenoh-Key-Expression ab. Reservierte DDS-Sonderzeichen (
*,?,[,]) werden mit_substituiert — Zenoh-KeyExpr-Spec verbietet sie.