Crate aeronet_wt_core
source ·Expand description
aeronet_wt_core
Core types and utilities for the WebTransport implementations of aeronet.
Channels
This crate defines types such as ChannelId
to represent the concept of a transport method used
by WebTransport (and in turn QUIC) to deliver your app’s messages. Channels may include datagrams
and bidirectional streams.
WebTransport uses the QUIC protocol internally, which allows using different methods of data transport for different situations, trading off reliability and ordering for speed. See the variant documentation for a description of each method.
Different methods may provide guarantees on:
- reliability - ensuring that the message reaches the other side
- ordering - ensuring that messages are received in the other they are sent
- head-of-line blocking - some messages may not be received until a different message sent earlier is received
QUIC and WebTransport also supports unidirectional streams, however implementing thse heavily
complicates the API surface, and bidirectional streams (ChannelKind::Stream
) are usually a good
replacement.
Structs
- A wrapper for
ChannelError
detailing on which channel the error occurred.
Enums
- An error that occurred while processing a channel.
- A side-agnostic type representing an instance of a method used for data transport.
- A side-agnostic type representing a kind of method used for data transport.
Traits
- Holds variants for the different types of channels used by an app.
- A message which is sent on a specific variant of
Channels
.
Derive Macros
- Defines the different app-specific channels used by messages in this app.
- Defines along what variant of a
Channels
a message is sent.