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()returnsBox<dyn TransportSender>
§Transport Selection
| Transport | Send | Recv | Use Case |
|---|---|---|---|
| Kafka | Yes | Yes | Production default, PB/day, persistence |
| gRPC | Yes | Yes | Low-latency direct, DFE mesh |
| Memory | Yes | Yes | Unit tests, same-process |
| File | Yes | Yes | Debugging, audit trails, replay |
| Pipe | Yes | Yes | Unix pipelines, sidecar pattern |
| HTTP | Yes | Yes | Webhook delivery, REST ingest |
| Redis | Yes | Yes | Edge 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-grpcpub use grpc::GrpcToken;transport-grpcpub use grpc::GrpcTransport;transport-grpcpub use memory::MemoryConfig;transport-memorypub use memory::MemoryToken;transport-memorypub use memory::MemoryTransport;transport-memorypub use pipe::PipeToken;transport-pipepub use pipe::PipeTransport;transport-pipepub use pipe::PipeTransportConfig;transport-pipepub use file::FileToken;transport-filepub use file::FileTransport;transport-filepub use file::FileTransportConfig;transport-filepub use http::HttpToken;transport-httppub use http::HttpTransport;transport-httppub use http::HttpTransportConfig;transport-httppub use redis_transport::RedisToken;transport-redispub use redis_transport::RedisTransport;transport-redispub use redis_transport::RedisTransportConfig;transport-redis
Modules§
- factory
- Transport factory for runtime transport selection.
- file
transport-file - File Transport
- filter
- Transport Filter Engine
- grpc
transport-grpc - gRPC Transport
- http
transport-http - HTTP Transport
- memory
transport-memory - Memory Transport
- pipe
transport-pipe - Pipe Transport
- propagation
- Trace Context Propagation
- redis_
transport transport-redis - Redis Streams Transport
- routed
- Per-key routing transport for data originators.
Structs§
- Format
Detector - Stateful format detector with auto-detection and locking.
- Message
- A received message with transport metadata.
- Transport
Config - Top-level transport configuration.
Enums§
- Detected
Format - Detected payload format (for stateful detection).
- Format
Mode - Format detection mode.
- Payload
Format - Payload format (auto-detected or explicit).
- Payload
Value - Parsed payload value.
- Send
Result - Result of a send operation.
- Transport
Error - Errors that can occur during transport operations.
- Transport
Type - Transport type selection.
Traits§
- Commit
Token - Transport-specific token for commit/acknowledgment.
- Transport
- Combined transport – implements both send and receive.
- Transport
Base - Common transport operations shared by senders and receivers.
- Transport
Receiver - Receive-side transport – generic over commit token type.
- Transport
Sender - 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§
- Transport
Result - Result type for transport operations.