zerodds-corba-dds-bridge 1.0.0-rc.6

Bidirectional CORBA-Object ↔ DDS-Topic bridge: GIOP request → DDS sample (servant mode) and DDS sample → GIOP request (forwarder mode). Many-to-many BridgeMapping with BridgeServant + LifecycleSync; wire helpers to corba-giop + corba-ior. no_std + alloc.
Documentation

zerodds-corba-dds-bridge

License: Apache-2.0 docs.rs

Bidirectional CORBA-Object ↔ DDS-Topic bridge: GIOP request → DDS sample (servant mode) and DDS sample → GIOP request (forwarder mode). Many-to-many BridgeMapping with BridgeServant + LifecycleSync and wire helpers to corba-giop + corba-ior. no_std + alloc, forbid(unsafe_code). Safety classification: STANDARD.

Spec mapping

Spec Section
OMG CORBA 3.3 Part 1 §11 POA servant (bridge path)
OMG CORBA 3.3 Part 2 §15 GIOP request, §13.6 IOR object_key
OMG DDS 1.4 §2.2.2.2.1 register/unregister_instance

What's included

  • BridgeMapping + BridgeRoute — many-to-many CORBA-Object ↔ DDS-Topic.
  • DirectionCorbaToDds / DdsToCorba / Bidirectional.
  • OperationMapping + TopicQosRef.
  • BridgeServant — a corba-poa::Servant-compatible bridge servant.
  • LifecycleSync + LifecycleEvent — CORBA activate ↔ DDS register_instance.
  • wire::decode_giop_request_bytes + wire::object_key_from_ior — cross-crate hooks to corba-giop + corba-ior.

What's not covered

  • DDS reader/writer instantiation: resolved at the caller layer via the DdsPublishSink trait (against dcps).
  • Wire encoding of the reply sides: caller-layer.

Example

use zerodds_corba_dds_bridge::Direction;
assert_ne!(Direction::CorbaToDds, Direction::DdsToCorba);

Tests

cargo test -p zerodds-corba-dds-bridge

See also