pub struct Http2Builder<'a, E> { /* private fields */ }
server
and (crate features http1
or http2
) and crate feature http2
only.Expand description
Http2 part of builder.
Implementations§
Source§impl<E> Http2Builder<'_, E>
impl<E> Http2Builder<'_, E>
Sourcepub fn http1(&mut self) -> Http1Builder<'_, E>
Available on crate feature http1
only.
pub fn http1(&mut self) -> Http1Builder<'_, E>
http1
only.Http1 configuration.
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
http2_initial_stream_window_size
and
http2_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. 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.
§Cargo Feature
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 http2_keep_alive_interval
is disabled.
Default is 20 seconds.
§Cargo Feature
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 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 ~16MB, but may 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 async fn serve_connection<I, S, B>(
&self,
io: I,
service: S,
) -> Result<(), Box<dyn Error + Send + Sync>>
pub async fn serve_connection<I, S, B>( &self, io: I, service: S, ) -> Result<(), Box<dyn Error + Send + Sync>>
Bind a connection together with a Service
.
Sourcepub fn serve_connection_with_upgrades<I, S, B>(
&self,
io: I,
service: S,
) -> UpgradeableConnection<'_, I, S, E> ⓘ
pub fn serve_connection_with_upgrades<I, S, B>( &self, io: I, service: S, ) -> UpgradeableConnection<'_, I, S, E> ⓘ
Bind a connection together with a Service
, with the ability to
handle HTTP upgrades. This requires that the IO object implements
Send
.