Struct Config

Source
pub struct Config(/* private fields */);

Implementations§

Source§

impl Config

Source

pub fn server() -> Self

Create configuration for server

Source

pub fn client() -> Self

Create configuration for client

Source§

impl Config

Source

pub fn initial_window_size(&self, size: u32) -> &Self

Indicates the initial window size (in octets) for stream-level flow control for received data.

The initial window of a stream is used as part of flow control. For more details, see [FlowControl].

The default value is 65,535.

Source

pub fn initial_connection_window_size(&self, size: u32) -> &Self

Indicates the initial window size (in octets) for connection-level flow control for received data.

The initial window of a connection is used as part of flow control. For more details, see FlowControl.

The default value is 1Mb.

Source

pub fn max_frame_size(&self, max: u32) -> &Self

Indicates the size (in octets) of the largest HTTP/2 frame payload that the configured server is able to accept.

The sender may send data frames that are smaller than this value, but any data larger than max will be broken up into multiple DATA frames.

The value must be between 16,384 and 16,777,215. The default value is 16,384.

§Panics

This function panics if max is not within the legal range specified above.

Source

pub fn max_header_list_size(&self, max: u32) -> &Self

Sets the max size of received header frames.

This advisory setting informs a peer of the maximum size of header list that the sender is prepared to accept, in octets. The value is based on the uncompressed size of header fields, including the length of the name and value in octets plus an overhead of 32 octets for each header field.

This setting is also used to limit the maximum amount of data that is buffered to decode HEADERS frames.

By default value is set to 48Kb.

Source

pub fn max_header_continuation_frames(&self, max: usize) -> &Self

Sets the max number of continuation frames for HEADERS

By default value is set to 5

Source

pub fn max_concurrent_streams(&self, max: u32) -> &Self

Sets the maximum number of concurrent streams.

The maximum concurrent streams setting only controls the maximum number of streams that can be initiated by the remote peer. In other words, when this setting is set to 100, this does not limit the number of concurrent streams that can be created by the caller.

It is recommended that this value be no smaller than 100, so as to not unnecessarily limit parallelism. However, any value is legal, including 0. If max is set to 0, then the remote will not be permitted to initiate streams.

Note that streams in the reserved state, i.e., push promises that have been reserved but the stream has not started, do not count against this setting.

Also note that if the remote does exceed the value set here, it is not a protocol level error. Instead, the h2 library will immediately reset the stream.

See Section 5.1.2 in the HTTP/2 spec for more details.

Source

pub fn max_concurrent_reset_streams(&self, val: usize) -> &Self

Sets the maximum number of concurrent locally reset streams.

When a stream is explicitly reset by either calling [SendResponse::send_reset] or by dropping a [SendResponse] instance before completing the stream, the HTTP/2 specification requires that any further frames received for that stream must be ignored for “some time”.

In order to satisfy the specification, internal state must be maintained to implement the behavior. This state grows linearly with the number of streams that are locally reset.

The max_concurrent_reset_streams setting configures sets an upper bound on the amount of state that is maintained. When this max value is reached, the oldest reset stream is purged from memory.

Once the stream has been fully purged from memory, any additional frames received for that stream will result in a connection level protocol error, forcing the connection to terminate.

The default value is 32.

Source

pub fn reset_stream_duration(&self, dur: Seconds) -> &Self

Sets the maximum number of concurrent locally reset streams.

When a stream is explicitly reset by either calling [SendResponse::send_reset] or by dropping a [SendResponse] instance before completing the stream, the HTTP/2 specification requires that any further frames received for that stream must be ignored for “some time”.

In order to satisfy the specification, internal state must be maintained to implement the behavior. This state grows linearly with the number of streams that are locally reset.

The reset_stream_duration setting configures the max amount of time this state will be maintained in memory. Once the duration elapses, the stream state is purged from memory.

Once the stream has been fully purged from memory, any additional frames received for that stream will result in a connection level protocol error, forcing the connection to terminate.

The default value is 30 seconds.

Source

pub fn handshake_timeout(&self, timeout: Seconds) -> &Self

Set handshake timeout.

Hadnshake includes receiving preface and completing connection preparation.

By default handshake timeuot is 5 seconds.

Source

pub fn frame_read_rate( &self, timeout: Seconds, max_timeout: Seconds, rate: u16, ) -> &Self

Set read rate parameters for single frame.

Set read timeout, max timeout and rate for reading payload. If the client sends rate amount of data within timeout period of time, extend timeout by timeout seconds. But no more than max_timeout timeout.

By default frame read rate is 256 bytes every seconds with no max timeout.

Source

pub fn disconnect_timeout(&self, val: Seconds) -> &Self

Set server connection disconnect timeout.

Defines a timeout for disconnect connection. If a disconnect procedure does not complete within this time, the connection get dropped.

To disable timeout set value to 0.

By default disconnect timeout is set to 1 seconds.

Source

pub fn ping_timeout(&self, timeout: Seconds) -> &Self

Set ping timeout.

By default ping time-out is set to 60 seconds.

Source

pub fn is_server(&self) -> bool

Check if configuration defined for server.

Source

pub fn is_shutdown(&self) -> bool

Check if service is shutting down.

Source

pub fn shutdown(&self)

Set service shutdown.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Config

§

impl !RefUnwindSafe for Config

§

impl !Send for Config

§

impl !Sync for Config

§

impl Unpin for Config

§

impl !UnwindSafe for Config

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.