pub struct NetworkConfig {Show 13 fields
pub connect_timeout_in_ms: u64,
pub request_timeout_in_ms: u64,
pub concurrency_limit_per_connection: usize,
pub max_concurrent_streams: u32,
pub tcp_nodelay: bool,
pub tcp_keepalive_in_secs: u64,
pub http2_keep_alive_interval_in_secs: u64,
pub http2_keep_alive_timeout_in_secs: u64,
pub max_frame_size: u32,
pub initial_connection_window_size: u32,
pub initial_stream_window_size: u32,
pub buffer_size: usize,
pub http2_adaptive_window: bool,
}Expand description
Network communication configuration for gRPC/HTTP2 transport
Provides fine-grained control over low-level network parameters
Fields§
§connect_timeout_in_ms: u64Timeout for establishing TCP connections in milliseconds Default: 20ms (suitable for LAN environments)
request_timeout_in_ms: u64Maximum duration for completing gRPC requests in milliseconds Default: 100ms (adjust based on RPC complexity)
concurrency_limit_per_connection: usizeMaximum concurrent requests per connection Default: 8192 (matches typical gRPC server settings)
max_concurrent_streams: u32HTTP2 SETTINGS_MAX_CONCURRENT_STREAMS value Default: 100 (controls concurrent streams per connection)
tcp_nodelay: boolEnable TCP_NODELAY to disable Nagle’s algorithm Default: true (recommended for low-latency scenarios)
tcp_keepalive_in_secs: u64TCP keepalive duration in seconds Default: 3600s (1 hour, OS may enforce minimum values)
http2_keep_alive_interval_in_secs: u64HTTP2 keepalive ping interval in seconds Default: 300s (5 minutes)
http2_keep_alive_timeout_in_secs: u64HTTP2 keepalive timeout in seconds Default: 20s (must be < interval)
max_frame_size: u32Maximum HTTP2 frame size in bytes Default: 12MB (12582912 bytes)
initial_connection_window_size: u32Initial connection-level flow control window in bytes Default: 12MB (12582912 bytes)
initial_stream_window_size: u32Initial per-stream flow control window in bytes Default: 2MB (2097152 bytes)
buffer_size: usizeI/O buffer size in bytes Default: 64KB (65536 bytes)
http2_adaptive_window: boolEnable adaptive flow control window sizing When enabled, overrides initial window size settings Default: false (use fixed window sizes)
Implementations§
Trait Implementations§
Source§impl Clone for NetworkConfig
impl Clone for NetworkConfig
Source§fn clone(&self) -> NetworkConfig
fn clone(&self) -> NetworkConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NetworkConfig
impl Debug for NetworkConfig
Source§impl Default for NetworkConfig
impl Default for NetworkConfig
Source§impl<'de> Deserialize<'de> for NetworkConfig
impl<'de> Deserialize<'de> for NetworkConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for NetworkConfig
impl RefUnwindSafe for NetworkConfig
impl Send for NetworkConfig
impl Sync for NetworkConfig
impl Unpin for NetworkConfig
impl UnwindSafe for NetworkConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request