Files
noq/pr/430/docs/iroh_quinn/index.html
T
2026-02-16 18:31:18 +00:00

34 lines
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="QUIC transport protocol implementation"><title>iroh_quinn - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="iroh_quinn" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Crate iroh_quinn</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../iroh_quinn/index.html">iroh_<wbr>quinn</a><span class="version">0.16.1</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#about-quic" title="About QUIC">About QUIC</a></li></ul><h3><a href="#reexports">Crate Items</a></h3><ul class="block"><li><a href="#reexports" title="Re-exports">Re-exports</a></li><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>iroh_<wbr>quinn</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/iroh_quinn/lib.rs.html#1-140">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>QUIC transport protocol implementation</p>
<p><a href="https://en.wikipedia.org/wiki/QUIC">QUIC</a> is a modern transport protocol addressing
shortcomings of TCP, such as head-of-line blocking, poor security, slow handshakes, and
inefficient congestion control. This crate provides a portable userspace implementation. It
builds on top of quinn-proto, which implements protocol logic independent of any particular
runtime.</p>
<p>The entry point of this crate is the <a href="struct.Endpoint.html" title="struct iroh_quinn::Endpoint"><code>Endpoint</code></a>.</p>
<h2 id="about-quic"><a class="doc-anchor" href="#about-quic">§</a>About QUIC</h2>
<p>A QUIC connection is an association between two endpoints. The endpoint which initiates the
connection is termed the client, and the endpoint which accepts it is termed the server. A
single endpoint may function as both client and server for different connections, for example
in a peer-to-peer application. To communicate application data, each endpoint may open streams
up to a limit dictated by its peer. Typically, that limit is increased as old streams are
finished.</p>
<p>Streams may be unidirectional or bidirectional, and are cheap to create and disposable. For
example, a traditionally datagram-oriented application could use a new stream for every
message it wants to send, no longer needing to worry about MTUs. Bidirectional streams behave
much like a traditional TCP connection, and are useful for sending messages that have an
immediate response, such as an HTTP request. Stream data is delivered reliably, and there is no
ordering enforced between data on different streams.</p>
<p>By avoiding head-of-line blocking and providing unified congestion control across all streams
of a connection, QUIC is able to provide higher throughput and lower latency than one or
multiple TCP connections between the same two hosts, while providing more useful behavior than
raw UDP sockets.</p>
<p>Quinn also exposes unreliable datagrams, which are a low-level primitive preferred when
automatic fragmentation and retransmission of certain data is not desired.</p>
<p>QUIC uses encryption and identity verification built directly on TLS 1.3. Just as with a TLS
server, it is useful for a QUIC server to be identified by a certificate signed by a trusted
authority. If this is infeasible–for example, if servers are short-lived or not associated
with a domain name–then as with TLS, self-signed certificates can be used to provide
encryption alone.</p>
</div></details><h2 id="reexports" class="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><dl class="item-table reexports"><dt id="reexport.rustls"><code>pub use rustls;</code></dt><dt id="reexport.udp"><code>pub use <a class="mod" href="../iroh_quinn_udp/index.html" title="mod iroh_quinn_udp">udp</a>;</code></dt></dl><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="congestion/index.html" title="mod iroh_quinn::congestion">congestion</a></dt><dd>Logic for controlling the rate at which data is sent</dd><dt><a class="mod" href="crypto/index.html" title="mod iroh_quinn::crypto">crypto</a></dt><dd>Traits and implementations for the QUIC cryptography protocol</dd></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.Accept.html" title="struct iroh_quinn::Accept">Accept</a></dt><dd>Future produced by <a href="struct.Endpoint.html#method.accept" title="method iroh_quinn::Endpoint::accept"><code>Endpoint::accept</code></a></dd><dt><a class="struct" href="struct.AcceptBi.html" title="struct iroh_quinn::AcceptBi">Accept<wbr>Bi</a></dt><dd>Future produced by <a href="struct.Connection.html#method.accept_bi" title="method iroh_quinn::Connection::accept_bi"><code>Connection::accept_bi</code></a></dd><dt><a class="struct" href="struct.AcceptUni.html" title="struct iroh_quinn::AcceptUni">Accept<wbr>Uni</a></dt><dd>Future produced by <a href="struct.Connection.html#method.accept_uni" title="method iroh_quinn::Connection::accept_uni"><code>Connection::accept_uni</code></a></dd><dt><a class="struct" href="struct.AckFrequencyConfig.html" title="struct iroh_quinn::AckFrequencyConfig">AckFrequency<wbr>Config</a></dt><dd>Parameters for controlling the peer’s acknowledgement frequency</dd><dt><a class="struct" href="struct.AddressDiscovery.html" title="struct iroh_quinn::AddressDiscovery">Address<wbr>Discovery</a></dt><dd>Stream produced by <a href="struct.Path.html#method.observed_external_addr" title="method iroh_quinn::Path::observed_external_addr"><code>Path::observed_external_addr</code></a></dd><dt><a class="struct" href="struct.ApplicationClose.html" title="struct iroh_quinn::ApplicationClose">Application<wbr>Close</a></dt><dd>Reason given by an application for closing the connection</dd><dt><a class="struct" href="struct.BloomTokenLog.html" title="struct iroh_quinn::BloomTokenLog">Bloom<wbr>Token<wbr>Log</a></dt><dd>Bloom filter-based <a href="trait.TokenLog.html" title="trait iroh_quinn::TokenLog"><code>TokenLog</code></a></dd><dt><a class="struct" href="struct.Chunk.html" title="struct iroh_quinn::Chunk">Chunk</a></dt><dd>A chunk of data from the receive stream</dd><dt><a class="struct" href="struct.ClientConfig.html" title="struct iroh_quinn::ClientConfig">Client<wbr>Config</a></dt><dd>Configuration for outgoing connections</dd><dt><a class="struct" href="struct.ClosedStream.html" title="struct iroh_quinn::ClosedStream">Closed<wbr>Stream</a></dt><dd>Error indicating that a stream has not been opened or has already been finished or reset</dd><dt><a class="struct" href="struct.Connecting.html" title="struct iroh_quinn::Connecting">Connecting</a></dt><dd>In-progress connection attempt future</dd><dt><a class="struct" href="struct.Connection.html" title="struct iroh_quinn::Connection">Connection</a></dt><dd>A QUIC connection.</dd><dt><a class="struct" href="struct.ConnectionClose.html" title="struct iroh_quinn::ConnectionClose">Connection<wbr>Close</a></dt><dd>Reason given by the transport for closing the connection</dd><dt><a class="struct" href="struct.ConnectionId.html" title="struct iroh_quinn::ConnectionId">Connection<wbr>Id</a></dt><dd>Protocol-level identifier for a connection.</dd><dt><a class="struct" href="struct.ConnectionStats.html" title="struct iroh_quinn::ConnectionStats">Connection<wbr>Stats</a></dt><dd>Connection statistics</dd><dt><a class="struct" href="struct.Endpoint.html" title="struct iroh_quinn::Endpoint">Endpoint</a></dt><dd>A QUIC endpoint.</dd><dt><a class="struct" href="struct.EndpointConfig.html" title="struct iroh_quinn::EndpointConfig">Endpoint<wbr>Config</a></dt><dd>Global configuration for the endpoint, affecting all connections</dd><dt><a class="struct" href="struct.EndpointStats.html" title="struct iroh_quinn::EndpointStats">Endpoint<wbr>Stats</a></dt><dd>Statistics on <a href="struct.Endpoint.html" title="struct iroh_quinn::Endpoint">Endpoint</a> activity</dd><dt><a class="struct" href="struct.FrameStats.html" title="struct iroh_quinn::FrameStats">Frame<wbr>Stats</a></dt><dd>Number of frames transmitted or received of each frame type</dd><dt><a class="struct" href="struct.IdleTimeout.html" title="struct iroh_quinn::IdleTimeout">Idle<wbr>Timeout</a></dt><dd>Maximum duration of inactivity to accept before timing out the connection</dd><dt><a class="struct" href="struct.Incoming.html" title="struct iroh_quinn::Incoming">Incoming</a></dt><dd>An incoming connection for which the server has not yet begun its part of the handshake</dd><dt><a class="struct" href="struct.IncomingFuture.html" title="struct iroh_quinn::IncomingFuture">Incoming<wbr>Future</a></dt><dd>Basic adapter to let <a href="struct.Incoming.html" title="struct iroh_quinn::Incoming"><code>Incoming</code></a> be <code>await</code>-ed like a <a href="struct.Connecting.html" title="struct iroh_quinn::Connecting"><code>Connecting</code></a></dd><dt><a class="struct" href="struct.InvalidCid.html" title="struct iroh_quinn::InvalidCid">Invalid<wbr>Cid</a></dt><dd>The connection ID was not recognized by the <a href="trait.ConnectionIdGenerator.html" title="trait iroh_quinn::ConnectionIdGenerator"><code>ConnectionIdGenerator</code></a></dd><dt><a class="struct" href="struct.MtuDiscoveryConfig.html" title="struct iroh_quinn::MtuDiscoveryConfig">MtuDiscovery<wbr>Config</a></dt><dd>Parameters governing MTU discovery.</dd><dt><a class="struct" href="struct.NoneTokenLog.html" title="struct iroh_quinn::NoneTokenLog">None<wbr>Token<wbr>Log</a></dt><dd>Null implementation of <a href="trait.TokenLog.html" title="trait iroh_quinn::TokenLog"><code>TokenLog</code></a>, which never accepts tokens</dd><dt><a class="struct" href="struct.NoneTokenStore.html" title="struct iroh_quinn::NoneTokenStore">None<wbr>Token<wbr>Store</a></dt><dd>Null implementation of <a href="trait.TokenStore.html" title="trait iroh_quinn::TokenStore"><code>TokenStore</code></a>, which does not store any tokens</dd><dt><a class="struct" href="struct.OnClosed.html" title="struct iroh_quinn::OnClosed">OnClosed</a></dt><dd>Future returned by <a href="struct.Connection.html#method.on_closed" title="method iroh_quinn::Connection::on_closed"><code>Connection::on_closed</code></a></dd><dt><a class="struct" href="struct.OpenBi.html" title="struct iroh_quinn::OpenBi">OpenBi</a></dt><dd>Future produced by <a href="struct.Connection.html#method.open_bi" title="method iroh_quinn::Connection::open_bi"><code>Connection::open_bi</code></a></dd><dt><a class="struct" href="struct.OpenPath.html" title="struct iroh_quinn::OpenPath">Open<wbr>Path</a></dt><dd>Future produced by <a href="struct.Connection.html#method.open_path" title="method iroh_quinn::Connection::open_path"><code>crate::Connection::open_path</code></a></dd><dt><a class="struct" href="struct.OpenUni.html" title="struct iroh_quinn::OpenUni">OpenUni</a></dt><dd>Future produced by <a href="struct.Connection.html#method.open_uni" title="method iroh_quinn::Connection::open_uni"><code>Connection::open_uni</code></a></dd><dt><a class="struct" href="struct.Path.html" title="struct iroh_quinn::Path">Path</a></dt><dd>An open network transmission within a multipath-enabled connection.</dd><dt><a class="struct" href="struct.PathId.html" title="struct iroh_quinn::PathId">PathId</a></dt><dd>Id representing different paths when using multipath extension</dd><dt><a class="struct" href="struct.PathStats.html" title="struct iroh_quinn::PathStats">Path<wbr>Stats</a></dt><dd>Statistics related to a transmission path</dd><dt><a class="struct" href="struct.QlogConfig.html" title="struct iroh_quinn::QlogConfig">Qlog<wbr>Config</a></dt><dd>Configuration for qlog trace logging.</dd><dt><a class="struct" href="struct.QlogFileFactory.html" title="struct iroh_quinn::QlogFileFactory">Qlog<wbr>File<wbr>Factory</a></dt><dd>Enables writing qlog traces to a directory.</dd><dt><a class="struct" href="struct.ReadDatagram.html" title="struct iroh_quinn::ReadDatagram">Read<wbr>Datagram</a></dt><dd>Future produced by <a href="struct.Connection.html#method.read_datagram" title="method iroh_quinn::Connection::read_datagram"><code>Connection::read_datagram</code></a></dd><dt><a class="struct" href="struct.RecvStream.html" title="struct iroh_quinn::RecvStream">Recv<wbr>Stream</a></dt><dd>A stream that can only be used to receive data</dd><dt><a class="struct" href="struct.RetryError.html" title="struct iroh_quinn::RetryError">Retry<wbr>Error</a></dt><dd>Error for attempting to retry an <a href="struct.Incoming.html" title="struct iroh_quinn::Incoming"><code>Incoming</code></a> which already bears a token from a previous retry</dd><dt><a class="struct" href="struct.SendDatagram.html" title="struct iroh_quinn::SendDatagram">Send<wbr>Datagram</a></dt><dd>Future produced by <a href="struct.Connection.html#method.send_datagram_wait" title="method iroh_quinn::Connection::send_datagram_wait"><code>Connection::send_datagram_wait</code></a></dd><dt><a class="struct" href="struct.SendStream.html" title="struct iroh_quinn::SendStream">Send<wbr>Stream</a></dt><dd>A stream that can only be used to send data</dd><dt><a class="struct" href="struct.ServerConfig.html" title="struct iroh_quinn::ServerConfig">Server<wbr>Config</a></dt><dd>Parameters governing incoming connections</dd><dt><a class="struct" href="struct.SmolRuntime.html" title="struct iroh_quinn::SmolRuntime">Smol<wbr>Runtime</a></dt><dd>A Quinn runtime for smol</dd><dt><a class="struct" href="struct.StdSystemTime.html" title="struct iroh_quinn::StdSystemTime">StdSystem<wbr>Time</a></dt><dd>Default implementation of <a href="trait.TimeSource.html" title="trait iroh_quinn::TimeSource"><code>TimeSource</code></a></dd><dt><a class="struct" href="struct.Stopped.html" title="struct iroh_quinn::Stopped">Stopped</a></dt><dd>Future returned from <a href="struct.SendStream.html#method.stopped" title="method iroh_quinn::SendStream::stopped"><code>SendStream::stopped</code></a>.</dd><dt><a class="struct" href="struct.StreamId.html" title="struct iroh_quinn::StreamId">Stream<wbr>Id</a></dt><dd>Identifier for a stream within a particular connection</dd><dt><a class="struct" href="struct.TokenMemoryCache.html" title="struct iroh_quinn::TokenMemoryCache">Token<wbr>Memory<wbr>Cache</a></dt><dd><code>TokenStore</code> implementation that stores up to <code>N</code> tokens per server name for up to a
limited number of server names, in-memory</dd><dt><a class="struct" href="struct.TokenReuseError.html" title="struct iroh_quinn::TokenReuseError">Token<wbr>Reuse<wbr>Error</a></dt><dd>Error for when a validation token may have been reused</dd><dt><a class="struct" href="struct.TokioRuntime.html" title="struct iroh_quinn::TokioRuntime">Tokio<wbr>Runtime</a></dt><dd>A Quinn runtime for Tokio</dd><dt><a class="struct" href="struct.Transmit.html" title="struct iroh_quinn::Transmit">Transmit</a></dt><dd>An outgoing packet</dd><dt><a class="struct" href="struct.TransportConfig.html" title="struct iroh_quinn::TransportConfig">Transport<wbr>Config</a></dt><dd>Parameters governing the core QUIC state machine</dd><dt><a class="struct" href="struct.TransportErrorCode.html" title="struct iroh_quinn::TransportErrorCode">Transport<wbr>Error<wbr>Code</a></dt><dd>Transport-level error code</dd><dt><a class="struct" href="struct.UdpStats.html" title="struct iroh_quinn::UdpStats">UdpStats</a></dt><dd>Statistics about UDP datagrams transmitted or received on a connection</dd><dt><a class="struct" href="struct.UnorderedRecvStream.html" title="struct iroh_quinn::UnorderedRecvStream">Unordered<wbr>Recv<wbr>Stream</a></dt><dd>A stream that can be used to receive data out-of-order.</dd><dt><a class="struct" href="struct.ValidationTokenConfig.html" title="struct iroh_quinn::ValidationTokenConfig">Validation<wbr>Token<wbr>Config</a></dt><dd>Configuration for sending and handling validation tokens in incoming connections</dd><dt><a class="struct" href="struct.VarInt.html" title="struct iroh_quinn::VarInt">VarInt</a></dt><dd>An integer less than 2^62</dd><dt><a class="struct" href="struct.VarIntBoundsExceeded.html" title="struct iroh_quinn::VarIntBoundsExceeded">VarInt<wbr>Bounds<wbr>Exceeded</a></dt><dd>Error returned when constructing a <code>VarInt</code> from a value &gt;= 2^62</dd><dt><a class="struct" href="struct.WeakConnectionHandle.html" title="struct iroh_quinn::WeakConnectionHandle">Weak<wbr>Connection<wbr>Handle</a></dt><dd>A handle to some connection internals, use with care.</dd><dt><a class="struct" href="struct.WeakPathHandle.html" title="struct iroh_quinn::WeakPathHandle">Weak<wbr>Path<wbr>Handle</a></dt><dd>Weak handle for a <a href="struct.Path.html" title="struct iroh_quinn::Path"><code>Path</code></a> that does not keep the connection alive.</dd><dt><a class="struct" href="struct.Written.html" title="struct iroh_quinn::Written">Written</a></dt><dd>Indicates how many bytes and chunks had been transferred in a write operation</dd><dt><a class="struct" href="struct.ZeroRttAccepted.html" title="struct iroh_quinn::ZeroRttAccepted">Zero<wbr>RttAccepted</a></dt><dd>Future that completes when a connection is fully established</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.ConfigError.html" title="enum iroh_quinn::ConfigError">Config<wbr>Error</a></dt><dd>Errors in the configuration of an endpoint</dd><dt><a class="enum" href="enum.ConnectError.html" title="enum iroh_quinn::ConnectError">Connect<wbr>Error</a></dt><dd>Errors in the parameters being used to create a new connection</dd><dt><a class="enum" href="enum.ConnectionError.html" title="enum iroh_quinn::ConnectionError">Connection<wbr>Error</a></dt><dd>Reasons why a connection might be lost</dd><dt><a class="enum" href="enum.Dir.html" title="enum iroh_quinn::Dir">Dir</a></dt><dd>Whether a stream communicates data in both directions or only from the initiator</dd><dt><a class="enum" href="enum.EcnCodepoint.html" title="enum iroh_quinn::EcnCodepoint">EcnCodepoint</a></dt><dd>Explicit congestion notification codepoint</dd><dt><a class="enum" href="enum.FrameType.html" title="enum iroh_quinn::FrameType">Frame<wbr>Type</a></dt><dt><a class="enum" href="enum.ReadError.html" title="enum iroh_quinn::ReadError">Read<wbr>Error</a></dt><dd>Errors that arise from reading from a stream.</dd><dt><a class="enum" href="enum.ReadExactError.html" title="enum iroh_quinn::ReadExactError">Read<wbr>Exact<wbr>Error</a></dt><dd>Errors that arise from reading from a stream.</dd><dt><a class="enum" href="enum.ReadToEndError.html" title="enum iroh_quinn::ReadToEndError">Read<wbr>ToEnd<wbr>Error</a></dt><dd>Errors from <a href="struct.RecvStream.html#method.read_to_end" title="method iroh_quinn::RecvStream::read_to_end"><code>RecvStream::read_to_end</code></a></dd><dt><a class="enum" href="enum.ResetError.html" title="enum iroh_quinn::ResetError">Reset<wbr>Error</a></dt><dd>Errors that arise while waiting for a stream to be reset</dd><dt><a class="enum" href="enum.SendDatagramError.html" title="enum iroh_quinn::SendDatagramError">Send<wbr>Datagram<wbr>Error</a></dt><dd>Errors that can arise when sending a datagram</dd><dt><a class="enum" href="enum.Side.html" title="enum iroh_quinn::Side">Side</a></dt><dd>Whether an endpoint was the initiator of a connection</dd><dt><a class="enum" href="enum.StoppedError.html" title="enum iroh_quinn::StoppedError">Stopped<wbr>Error</a></dt><dd>Errors that arise while monitoring for a send stream stop from the peer</dd><dt><a class="enum" href="enum.WriteError.html" title="enum iroh_quinn::WriteError">Write<wbr>Error</a></dt><dd>Errors that arise from writing to a stream</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.AsyncTimer.html" title="trait iroh_quinn::AsyncTimer">Async<wbr>Timer</a></dt><dd>Abstract implementation of an async timer for runtime independence</dd><dt><a class="trait" href="trait.AsyncUdpSocket.html" title="trait iroh_quinn::AsyncUdpSocket">Async<wbr>UdpSocket</a></dt><dd>Abstract implementation of a UDP socket for runtime independence</dd><dt><a class="trait" href="trait.ConnectionIdGenerator.html" title="trait iroh_quinn::ConnectionIdGenerator">Connection<wbr>IdGenerator</a></dt><dd>Generates connection IDs for incoming connections</dd><dt><a class="trait" href="trait.NetworkChangeHint.html" title="trait iroh_quinn::NetworkChangeHint">Network<wbr>Change<wbr>Hint</a></dt><dd>Hints when the caller identifies a network change.</dd><dt><a class="trait" href="trait.QlogFactory.html" title="trait iroh_quinn::QlogFactory">Qlog<wbr>Factory</a></dt><dd>Constructs a <a href="struct.QlogConfig.html" title="struct iroh_quinn::QlogConfig"><code>QlogConfig</code></a> for individual connections.</dd><dt><a class="trait" href="trait.Runtime.html" title="trait iroh_quinn::Runtime">Runtime</a></dt><dd>Abstracts I/O and timer operations for runtime independence</dd><dt><a class="trait" href="trait.TimeSource.html" title="trait iroh_quinn::TimeSource">Time<wbr>Source</a></dt><dd>Object to get current <a href="https://doc.rust-lang.org/nightly/std/time/struct.SystemTime.html" title="struct std::time::SystemTime"><code>SystemTime</code></a></dd><dt><a class="trait" href="trait.TokenLog.html" title="trait iroh_quinn::TokenLog">Token<wbr>Log</a></dt><dd>Responsible for limiting clients’ ability to reuse validation tokens</dd><dt><a class="trait" href="trait.TokenStore.html" title="trait iroh_quinn::TokenStore">Token<wbr>Store</a></dt><dd>Responsible for storing validation tokens received from servers and retrieving them for use in
subsequent connections</dd><dt><a class="trait" href="trait.UdpSender.html" title="trait iroh_quinn::UdpSender">UdpSender</a></dt><dd>An object for asynchronously writing to an associated <a href="trait.AsyncUdpSocket.html" title="trait iroh_quinn::AsyncUdpSocket"><code>AsyncUdpSocket</code></a>.</dd></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.default_runtime.html" title="fn iroh_quinn::default_runtime">default_<wbr>runtime</a></dt><dd>Automatically select an appropriate runtime from those enabled at compile time</dd></dl></section></div></main></body></html>