Skip to main content

Module connection

Module connection 

Source
Expand description

Outbound MoQT connection with MoQT framing over QUIC.

Re-exportsΒ§

use std::collections::VecDeque; πŸ”’
use std::sync::Mutex; πŸ”’
use bytes::Buf; πŸ”’
use bytes::Bytes; πŸ”’
use bytes::BytesMut; πŸ”’
use crate::draft16::endpoint::Endpoint; πŸ”’
use crate::draft16::endpoint::EndpointError; πŸ”’
use crate::draft16::event::ClientEvent; πŸ”’
use crate::draft16::event::Direction; πŸ”’
use crate::draft16::event::StreamKind; πŸ”’
use crate::draft16::observer::ConnectionObserver; πŸ”’
use crate::draft16::session::request_id::Role; πŸ”’
use crate::draft16::session::setup; πŸ”’
use crate::malformed_tracks::MalformedTrackCondition; πŸ”’
use crate::track_locations::ObjectLocation; πŸ”’
use crate::track_locations::ObjectRole; πŸ”’
use crate::track_locations::TrackObjects; πŸ”’
use crate::transport::RecvStream; πŸ”’
use crate::transport::SendStream; πŸ”’
use crate::transport::Transport; πŸ”’
use crate::transport::TransportError; πŸ”’
use moqtap_codec::dispatch::AnyControlMessage; πŸ”’
use moqtap_codec::dispatch::AnyDatagramHeader; πŸ”’
use moqtap_codec::dispatch::AnyFetchHeader; πŸ”’
use moqtap_codec::dispatch::AnySubgroupHeader; πŸ”’
use moqtap_codec::draft16::data_stream::FetchHeader; πŸ”’
use moqtap_codec::draft16::data_stream::FetchObjectHeader; πŸ”’
use moqtap_codec::draft16::data_stream::SubgroupObject; πŸ”’
use moqtap_codec::draft16::data_stream::SubgroupObjectReader; πŸ”’
use moqtap_codec::draft16::error_codes::DataStreamResetErrorCode; πŸ”’
use moqtap_codec::draft16::message::ControlMessage; πŸ”’
use moqtap_codec::draft16::message::MessageType; πŸ”’
use moqtap_codec::draft16::message::RequestError; πŸ”’
use moqtap_codec::draft16::message::RequestOk; πŸ”’
use moqtap_codec::error::CodecError; πŸ”’
use moqtap_codec::kvp::KeyValuePair; πŸ”’
use moqtap_codec::varint::VarInt; πŸ”’
use moqtap_codec::version::DraftVersion; πŸ”’
use moqtap_codec::types::*; πŸ”’

StructsΒ§

ClientConfig
Configuration for a MoQT client connection.
Connection
A live MoQT connection over QUIC or WebTransport, combining the endpoint state machine with actual network I/O.
FramedRecvStream
A framed reader for a recv stream. Handles MoQT varint-length decoding.
FramedSendStream
A framed writer for a send stream. Handles MoQT length-prefixed framing.
NamespaceStream
One SUBSCRIBE_NAMESPACE and everything answering it, on a bidirectional stream of their own.
PendingInbound πŸ”’
Holds a peer-opened stream pair while its first message is being read, and puts it back on the connection’s queue if that read is abandoned.

EnumsΒ§

ConnectionError
Errors from the connection layer.
RequestOrigin
Which side opened the bidirectional stream a namespace subscription travels on.
TransportType
Transport type for the connection.

ConstantsΒ§

MAX_QUIC_VARINT πŸ”’
The largest value a QUIC application error code can carry, 2^62 - 1.
MOQT_ALPN
The ALPN identifier draft-16 uses on raw QUIC, moqt-16.
STREAM_ABANDONED πŸ”’
The application error code a namespace subscription’s stream is abandoned with when this endpoint never served it: INTERNAL_ERROR, 0x0.

FunctionsΒ§

empty_datagram_extensions πŸ”’
ConnectionError::EmptyDatagramExtensions for a datagram the header decoder refused as InvalidField, when its empty extension block was the fault.
malformed_track_condition πŸ”’
The Malformed Track condition a codec refusal on a data path is, on this draft, or None for a refusal that is not one.
object_role πŸ”’
What an Object Status makes of an object here.
varint_len πŸ”’
Determine the encoded length of a varint from its first byte.