slim_datapath/lib.rs
1// Copyright AGNTCY Contributors (https://github.com/agntcy)
2// SPDX-License-Identifier: Apache-2.0
3
4pub mod api;
5pub mod errors;
6pub mod messages;
7pub mod runtime;
8pub mod tables;
9
10// Most transport-neutral data-plane logic is shared between native and wasm32:
11// connection state, forwarding, negotiation, synchronization, and message
12// processing. wasm32 supports outgoing WebSocket connections only. The gRPC
13// transport, native fastwebsockets implementation, inbound WebSocket server
14// handling, peer discovery, and native peer-discovery lifecycle management are
15// native-only. OpenTelemetry span export (OTLP) is native-only; with the
16// `otel_tracing` feature, wasm32 participates in distributed trace propagation
17// via SLIM message metadata (see `slim_tracing` browser init).
18pub mod connection;
19pub mod forwarder;
20// Public link-integrity primitives for external transports. Built-in clients
21// use them indirectly through MessageProcessor::connect and internal link
22// negotiation.
23pub mod header_mac;
24pub mod link_ecdh;
25pub mod message_processing;
26mod negotiation;
27pub mod sync;
28pub mod websocket;
29
30#[cfg(feature = "otel_tracing")]
31mod otel_tracing;
32
33// Peer discovery has no wasm32 implementation and is excluded here.
34#[cfg(not(target_arch = "wasm32"))]
35pub mod peer_discovery;
36
37pub use tonic::Status;