Crate aeronet_wt_core

source ·
Expand description

aeronet_wt_core

crates.io docs.rs

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

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.