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 codec::CodecError;pub use codec::FieldRef;pub use codec::ParsedPayload;pub use codec::parse;pub use factory::AnyReceiver;pub use factory::AnySender;pub use factory::AnyToken;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§
- codec
- Parse-on-demand codec (Task 0.3a)
- 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.
- Record
- One work record: payload + routing + metadata, with no commit token.
- Record
Meta - Lean per-record metadata.
- Recv
Batch - Result of a
TransportReceiver::recvcall. - Recv
Limits - Limits for a single byte-aware
TransportReceiver::recv_limitedpoll. - Transport
Config - Top-level transport configuration.
- Work
Batch - The canonical zero-copy block of work records.
Enums§
- Detected
Format - Detected payload format (for stateful detection).
- Format
Mode - Format detection mode.
- Framing
Error - Failure modes for
WorkBatch::from_json_arrayframing. - Payload
Format - Payload format (auto-detected or explicit).
- 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.
- From
Cascade - Load a transport config from the cascade under a fixed key.
- 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).
Type Aliases§
- Transport
Result - Result type for transport operations.