webtrans_quinn/lib.rs
1//! Native WebTransport implementation built on top of QUIC using Quinn.
2//!
3//! This crate provides a low-level, QUIC WebTransport API for native environments.
4//!
5//! The implementation is powered by [`quinn`], and most transport-level
6//! behavior (congestion control, flow control, crypto, etc.) is delegated
7//! directly to Quinn.
8
9mod client;
10mod error;
11mod recv;
12mod send;
13mod server;
14mod session;
15pub mod tls;
16
17pub use client::*;
18pub use error::*;
19pub use recv::*;
20pub use send::*;
21pub use server::*;
22pub use session::*;
23
24mod connect;
25mod settings;
26
27use connect::Connect;
28pub use connect::ConnectError;
29use settings::Settings;
30pub use settings::SettingsError;
31
32/// The HTTP/3 ALPN token used when negotiating a QUIC connection.
33pub const ALPN: &str = "h3";
34
35/// Whether the native transport can use the draft-required RESET_STREAM_AT
36/// extension.
37///
38/// Quinn 0.11 does not expose this extension, so callers that require strict
39/// draft-16 conformance should reject the native backend while this is `false`.
40pub const RESET_STREAM_AT_SUPPORTED: bool = false;
41
42// Export the simple crypto provider.
43pub mod crypto;
44
45// Re-export the underlying QUIC implementation.
46pub use quinn;
47
48// Re-export the `rustls` crate because it is part of the public API.
49pub use rustls;
50
51// Re-export the `http` crate because it is part of the public API.
52pub use http;
53
54// Re-export the generic WebTransport traits.
55pub use webtrans_trait as generic;