pub struct Http3Settings {
pub max_requests_per_connection: Option<u64>,
pub max_header_list_size: Option<u64>,
pub qpack_max_table_capacity: Option<u64>,
pub qpack_blocked_streams: Option<u64>,
pub post_accept_timeout: Option<Duration>,
pub enable_extended_connect: bool,
pub max_recv_body_buf_size: Option<usize>,
}Expand description
Unified configuration parameters for H3Drivers.
Fields§
§max_requests_per_connection: Option<u64>Maximum number of requests a ServerH3Driver allows per connection.
max_header_list_size: Option<u64>Maximum size of a single HEADERS frame, in bytes.
qpack_max_table_capacity: Option<u64>Maximum value the QPACK encoder is permitted to set for the dynamic table capcity. See https://www.rfc-editor.org/rfc/rfc9204.html#name-maximum-dynamic-table-capac
qpack_blocked_streams: Option<u64>Upper bound on the number of streams that can be blocked on the QPACK decoder. See https://www.rfc-editor.org/rfc/rfc9204.html#name-blocked-streams
post_accept_timeout: Option<Duration>Timeout between starting the QUIC handshake and receiving the first request on a connection. Only applicable to ServerH3Driver.
enable_extended_connect: boolSet the SETTINGS_ENABLE_CONNECT_PROTOCOL HTTP/3 setting.
See https://www.rfc-editor.org/rfc/rfc9220#section-3-2
max_recv_body_buf_size: Option<usize>Maximum size, in bytes, of the buffer the driver uses to read HTTP/3 body data out of quiche before forwarding it upstream.
The buffer is sized dynamically to the amount of data currently readable on a stream (which is itself bounded by the QUIC flow-control window and the size of the buffered QUIC STREAM frames), but a single read will never allocate more than this cap. This bounds the memory a single (potentially adversarial) stream can force the driver to allocate.
When unset or Some(0), the driver defaults to 16 KiB.
Trait Implementations§
Source§impl Clone for Http3Settings
impl Clone for Http3Settings
Source§fn clone(&self) -> Http3Settings
fn clone(&self) -> Http3Settings
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Http3Settings
impl Debug for Http3Settings
Source§impl Default for Http3Settings
impl Default for Http3Settings
Source§fn default() -> Http3Settings
fn default() -> Http3Settings
Source§impl From<&Http3Settings> for Config
impl From<&Http3Settings> for Config
Source§fn from(value: &Http3Settings) -> Self
fn from(value: &Http3Settings) -> Self
Auto Trait Implementations§
impl Freeze for Http3Settings
impl RefUnwindSafe for Http3Settings
impl Send for Http3Settings
impl Sync for Http3Settings
impl Unpin for Http3Settings
impl UnsafeUnpin for Http3Settings
impl UnwindSafe for Http3Settings
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more