Skip to main content

Crate zerodds_zenoh_bridge

Crate zerodds_zenoh_bridge 

Source
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 ist ZenohBridge::start voll funktional.

§QoS-Mapping (DDS → Zenoh)

DDS-QoSZenoh-Aequivalent
Reliability::ReliableReliability::Reliable (Zenoh)
Reliability::BestEffortReliability::BestEffort
Durability::TransientLocalCongestionControl::Block + Priority::DataHigh
Durability::Volatile (Default)CongestionControl::Drop
History::KeepLast(n)(Zenoh hat kein History-Cache; n>1 ignoriert)
PartitionKeyExpr-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§

TopicMap
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.