Skip to main content

Module transport

Module transport 

Source
Available on crate feature transport only.
Expand description

§Transport Abstraction Layer

Pluggable message transport with split sender/receiver traits for type-safe factory construction and runtime transport selection.

§Architecture

TransportSender (object-safe)     TransportReceiver<Token> (generic)
  send(key, payload)                recv(max) -> Vec<Message<Token>>
  close()                           commit(tokens)
  is_healthy()                      close()
  name()                            is_healthy(), name()
        |                                    |
        +-------- Transport (blanket) -------+
  • Output stages (DLQ, forwarding, archiving): use Box<dyn TransportSender>
  • Input stages (receiver, fetcher): use concrete impl TransportReceiver
  • Factory: sender_from_config() returns Box<dyn TransportSender>

§Transport Selection

TransportSendRecvUse Case
KafkaYesYesProduction default, PB/day, persistence
gRPCYesYesLow-latency direct, DFE mesh
MemoryYesYesUnit tests, same-process
FileYesYesDebugging, audit trails, replay
PipeYesYesUnix pipelines, sidecar pattern
HTTPYesYesWebhook delivery, REST ingest
RedisYesYesEdge deployments, lightweight pub/sub

§Example

use hyperi_rustlib::transport::{TransportSender, TransportConfig};

// Factory creates the right backend from config
let sender: Box<dyn TransportSender> = transport::sender_from_config("transport.output").await?;
sender.send("events.land", payload).await;

Re-exports§

pub use factory::AnySender;
pub use routed::RoutedSender;
pub use grpc::GrpcConfig;transport-grpc
pub use grpc::GrpcToken;transport-grpc
pub use grpc::GrpcTransport;transport-grpc
pub use memory::MemoryConfig;transport-memory
pub use memory::MemoryToken;transport-memory
pub use memory::MemoryTransport;transport-memory
pub use pipe::PipeToken;transport-pipe
pub use pipe::PipeTransport;transport-pipe
pub use pipe::PipeTransportConfig;transport-pipe
pub use file::FileToken;transport-file
pub use file::FileTransport;transport-file
pub use file::FileTransportConfig;transport-file
pub use http::HttpToken;transport-http
pub use http::HttpTransport;transport-http
pub use http::HttpTransportConfig;transport-http
pub use redis_transport::RedisToken;transport-redis
pub use redis_transport::RedisTransport;transport-redis
pub use redis_transport::RedisTransportConfig;transport-redis

Modules§

factory
Transport factory for runtime transport selection.
filetransport-file
File Transport
filter
Transport Filter Engine
grpctransport-grpc
gRPC Transport
httptransport-http
HTTP Transport
memorytransport-memory
Memory Transport
pipetransport-pipe
Pipe Transport
propagation
Trace Context Propagation
redis_transporttransport-redis
Redis Streams Transport
routed
Per-key routing transport for data originators.

Structs§

FormatDetector
Stateful format detector with auto-detection and locking.
Message
A received message with transport metadata.
TransportConfig
Top-level transport configuration.

Enums§

DetectedFormat
Detected payload format (for stateful detection).
FormatMode
Format detection mode.
PayloadFormat
Payload format (auto-detected or explicit).
PayloadValue
Parsed payload value.
SendResult
Result of a send operation.
TransportError
Errors that can occur during transport operations.
TransportType
Transport type selection.

Traits§

CommitToken
Transport-specific token for commit/acknowledgment.
Transport
Combined transport – implements both send and receive.
TransportBase
Common transport operations shared by senders and receivers.
TransportReceiver
Receive-side transport – generic over commit token type.
TransportSender
Send-side transport.

Functions§

detect_format
Stateless format detection (convenience function).
extract_field
Extract a field from JSON bytes without full parsing.
extract_nested_field
Extract a nested field using dot notation (e.g., “tags.event.org_id”).
parse_payload
Parse payload bytes into a JSON value.
parse_payload_typed
Parse payload bytes into a typed struct.
parse_payload_with_format
Parse payload bytes with explicit format.
serialize_json
Serialize a value to JSON bytes.
serialize_msgpack
Serialize a value to MsgPack bytes.
serialize_payload
Serialize a value to the specified format.

Type Aliases§

TransportResult
Result type for transport operations.