aeronet_wt_core 0.3.0

Core types for the WebTransport implementations for aeronet
Documentation
# `aeronet_wt_core`

[![crates.io](https://img.shields.io/crates/v/aeronet_wt_core.svg)](https://crates.io/crates/aeronet_wt_core)
[![docs.rs](https://img.shields.io/docsrs/aeronet_wt_core)](https://docs.rs/aeronet_wt_core)

Core types and utilities for the
[WebTransport](https://developer.chrome.com/en/articles/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.