pub struct Builder<E> {
exec: E,
timer: Time,
h2_builder: Config,
}Expand description
A configuration builder for HTTP/2 server connections.
Note: The default values of options are not considered stable. They are subject to change at any time.
Fields§
§exec: E§timer: Time§h2_builder: ConfigImplementations§
Source§impl<E> Builder<E>
impl<E> Builder<E>
Sourcepub fn new(exec: E) -> Self
pub fn new(exec: E) -> Self
Create a new connection builder.
This starts with the default options, and an executor which is a type
that implements Http2ServerConnExec trait.
Sourcepub fn max_pending_accept_reset_streams(
&mut self,
max: impl Into<Option<usize>>,
) -> &mut Self
pub fn max_pending_accept_reset_streams( &mut self, max: impl Into<Option<usize>>, ) -> &mut Self
Configures the maximum number of pending reset streams allowed before a GOAWAY will be sent.
This will default to the default value set by the h2 crate.
As of v0.4.0, it is 20.
See https://github.com/hyperium/hyper/issues/2877 for more information.
Sourcepub fn max_local_error_reset_streams(
&mut self,
max: impl Into<Option<usize>>,
) -> &mut Self
pub fn max_local_error_reset_streams( &mut self, max: impl Into<Option<usize>>, ) -> &mut Self
Configures the maximum number of local reset streams allowed before a GOAWAY will be sent.
If not set, hyper will use a default, currently of 1024.
If None is supplied, hyper will not apply any limit.
This is not advised, as it can potentially expose servers to DOS vulnerabilities.
See https://rustsec.org/advisories/RUSTSEC-2024-0003.html for more information.
Sourcepub fn initial_stream_window_size(
&mut self,
sz: impl Into<Option<u32>>,
) -> &mut Self
pub fn initial_stream_window_size( &mut self, sz: impl Into<Option<u32>>, ) -> &mut Self
Sets the SETTINGS_INITIAL_WINDOW_SIZE option for HTTP2
stream-level flow control.
Passing None will do nothing.
If not set, hyper will use a default.
Sourcepub fn initial_connection_window_size(
&mut self,
sz: impl Into<Option<u32>>,
) -> &mut Self
pub fn initial_connection_window_size( &mut self, sz: impl Into<Option<u32>>, ) -> &mut Self
Sets the max connection-level flow control for HTTP2.
Passing None will do nothing.
If not set, hyper will use a default.
Sourcepub fn adaptive_window(&mut self, enabled: bool) -> &mut Self
pub fn adaptive_window(&mut self, enabled: bool) -> &mut Self
Sets whether to use an adaptive flow control.
Enabling this will override the limits set in
initial_stream_window_size and
initial_connection_window_size.
Sourcepub fn max_frame_size(&mut self, sz: impl Into<Option<u32>>) -> &mut Self
pub fn max_frame_size(&mut self, sz: impl Into<Option<u32>>) -> &mut Self
Sets the maximum frame size to use for HTTP2.
Passing None will do nothing.
If not set, hyper will use a default.
Sourcepub fn max_concurrent_streams(
&mut self,
max: impl Into<Option<u32>>,
) -> &mut Self
pub fn max_concurrent_streams( &mut self, max: impl Into<Option<u32>>, ) -> &mut Self
Sets the SETTINGS_MAX_CONCURRENT_STREAMS option for HTTP2
connections.
Default is 200, but not part of the stability of hyper. It could change in a future release. You are encouraged to set your own limit.
Passing None will remove any limit.
Sourcepub fn keep_alive_interval(
&mut self,
interval: impl Into<Option<Duration>>,
) -> &mut Self
pub fn keep_alive_interval( &mut self, interval: impl Into<Option<Duration>>, ) -> &mut Self
Sets an interval for HTTP2 Ping frames should be sent to keep a connection alive.
Pass None to disable HTTP2 keep-alive.
Default is currently disabled.
Sourcepub fn keep_alive_timeout(&mut self, timeout: Duration) -> &mut Self
pub fn keep_alive_timeout(&mut self, timeout: Duration) -> &mut Self
Sets a timeout for receiving an acknowledgement of the keep-alive ping.
If the ping is not acknowledged within the timeout, the connection will
be closed. Does nothing if keep_alive_interval is disabled.
Default is 20 seconds.
Sourcepub fn max_send_buf_size(&mut self, max: usize) -> &mut Self
pub fn max_send_buf_size(&mut self, max: usize) -> &mut Self
Set the maximum write buffer size for each HTTP/2 stream.
Default is currently ~400KB, but may change.
§Panics
The value must be no larger than u32::MAX.
Sourcepub fn enable_connect_protocol(&mut self) -> &mut Self
pub fn enable_connect_protocol(&mut self) -> &mut Self
Enables the extended CONNECT protocol.
Sourcepub fn header_table_size(&mut self, size: impl Into<Option<u32>>) -> &mut Self
pub fn header_table_size(&mut self, size: impl Into<Option<u32>>) -> &mut Self
Sets the header table size.
This setting informs the peer of the maximum size of the header compression table used to encode header blocks, in octets. The encoder may select any value equal to or less than the header table size specified by the sender.
The default value of crate h2 is 4,096.
Sourcepub fn max_header_list_size(&mut self, max: u32) -> &mut Self
pub fn max_header_list_size(&mut self, max: u32) -> &mut Self
Sets the max size of received header frames.
Default is currently 16KB, but can change.
Sourcepub fn auto_date_header(&mut self, enabled: bool) -> &mut Self
pub fn auto_date_header(&mut self, enabled: bool) -> &mut Self
Set whether the date header should be included in HTTP responses.
Note that including the date header is recommended by RFC 7231.
Default is true.
Sourcepub fn serve_connection<S, I, Bd>(
&self,
io: I,
service: S,
) -> Connection<I, S, E> ⓘ
pub fn serve_connection<S, I, Bd>( &self, io: I, service: S, ) -> Connection<I, S, E> ⓘ
Bind a connection together with a Service.
This returns a Future that must be polled in order for HTTP to be driven on the connection.