Expand description
wRPC transport abstractions, codec and framing
wRPC is an RPC framework based on WIT. It follows client-server model, where peers (servers) may serve function and method calls invoked by the other peers (clients).
The two main abstractions on top of which wRPC is built are:
- Invoke - the client-side handle to a wRPC transport, allowing clients to invoke WIT functions over wRPC transport
- Serve - the server-side handle to a wRPC transport, allowing servers to serve WIT functions over wRPC transport
Implementations of Invoke and Serve define transport-specific, multiplexed bidirectional byte stream types:
Invoke::IncomingandServe::Incomingrepresent the stream incoming from a peer.Invoke::OutgoingandServe::Outgoingrepresent the stream outgoing to a peer.
Re-exports§
pub use frame::Accept;pub use frame::Decoder as FrameDecoder;pub use frame::Encoder as FrameEncoder;pub use frame::Frame;pub use frame::FrameRef;pub use frame::Server;pub use invoke::Invoke;pub use invoke::InvokeExt;pub use serve::Serve;pub use serve::ServeExt;pub use frame::tcp;pub use frame::unix;
Modules§
- frame
- wRPC transport stream framing
- invoke
- wRPC transport client handle
- serve
- wRPC transport server handle
Structs§
- Future
Decoder - Decoder for
future<T> - Future
Encoder - Encoder for
future<T> - Incoming
- Buffered incoming stream used for decoding values
- List
Decoder - Decoder for
list<T> - List
Decoder U8 - Decoder for
list<u8> - List
Encoder - Encoder for
list<T> - Resource
Borrow - Borrowed resource handle, represented as an opaque byte blob
- Resource
Borrow Decoder - Decoder for borrowed resource types
- Resource
Encoder - Encoder for
resourcetypes - Resource
Own - Owned resource handle, represented as an opaque byte blob
- Resource
OwnDecoder - Decoder for owned resource types
- Stream
Decoder - Decoder for
stream<T> - Stream
Decoder Bytes - Decoder for
stream<list<u8>> - Stream
Decoder Read - Decoder for
stream<list<u8>>withAsyncReadsupport - Stream
Encoder - Encoder for
stream<T> - Stream
Encoder Bytes - Encoder for
stream<list<u8>> - Stream
Encoder Read - Encoder for
stream<list<u8>>withAsyncReadsupport - Sync
Codec - Codec for synchronous values
- Unit
Codec - Codec for
()
Traits§
- Decode
- Defines value decoding
- Deferred
- Handles async processing state for codecs
- Encode
- Defines value encoding
- Index
- Multiplexes streams
- Send
Future - This trait is used as a workaround for compiler bug https://github.com/rust-lang/rust/issues/96865
- Tuple
Decode - Marker trait for Decode tuple types
- Tuple
Encode - Marker trait for Encode tuple types
Type Aliases§
- Deferred
Fn - Deferred operation used for async value processing