Expand description
Backend traits and types for tunneling iceoryx2 services across hosts.
This crate provides the trait abstractions necessary to implement custom
communication backends that tunnel iceoryx2 Services
between different hosts, networks, or domains. Implementers can create backends
using various protocols (TCP, UDP, custom transports) while maintaining a
consistent interface for the iceoryx2 tunnel infrastructure.
§Overview
The crate defines a hierarchy of traits that together enable complete tunneling functionality:
Backend: Top-level trait combining discovery and relay factory capabilitiesDiscovery:Serviceannouncement and discovery across the backendRelayFactory: Factory for creating relay instancesRelayBuilder: Builder pattern for configuring relaysPublishSubscribeRelay: Bidirectional pub-sub data tunnelingEventRelay: Bidirectional event notification tunneling
§Architecture
A tunnel backend implementation consists of two main components:
-
Discovery: Announces local
Services to remote hosts and discoversServices available on remote hosts, making them accessible as if they were local. -
Relays: Handle the actual data transmission for
Services. Each service pattern (event, publish-subscribe) has its own relay type that manages bidirectional communication over the backend’s transport mechanism.
§Usage
This crate is intended for developers implementing custom tunnel backends. End users typically interact with concrete backend implementations rather than using this crate directly.
§Features
This crate is no_std compatible and requires only the alloc crate.