pub struct KalamLinkTimeouts {
pub connection_timeout: Duration,
pub receive_timeout: Duration,
pub send_timeout: Duration,
pub subscribe_timeout: Duration,
pub auth_timeout: Duration,
pub initial_data_timeout: Duration,
pub idle_timeout: Duration,
pub keepalive_interval: Duration,
pub pong_timeout: Duration,
}Expand description
Timeout configuration for KalamDB client operations.
All timeout values are optional and will use sensible defaults if not specified.
§Examples
use std::time::Duration;
use kalam_client::KalamLinkTimeouts;
// Use defaults (recommended for most cases)
let timeouts = KalamLinkTimeouts::default();
// Custom timeouts for high-latency environments
let timeouts = KalamLinkTimeouts::builder()
.connection_timeout(Duration::from_secs(60))
.receive_timeout(Duration::from_secs(120))
.build();
// Aggressive timeouts for local development
let timeouts = KalamLinkTimeouts::fast();Fields§
§connection_timeout: DurationTimeout for establishing connections (TCP + TLS handshake). Default: 10 seconds
receive_timeout: DurationTimeout for receiving data after a request is sent. Also used as the interval for detecting stale WebSocket connections. Default: 30 seconds
send_timeout: DurationTimeout for sending data to the server. Default: 10 seconds
subscribe_timeout: DurationTimeout for waiting for subscription acknowledgment (SUBSCRIBED ack). Default: 5 seconds
auth_timeout: DurationTimeout for authentication handshake (WebSocket auth message exchange). Default: 5 seconds
initial_data_timeout: DurationTimeout for waiting for initial data batch after subscription. Set to 0 to wait indefinitely (useful for live-only subscriptions). Default: 30 seconds
idle_timeout: DurationIdle timeout - close connection if no subscriptions are active. Set to 0 to disable idle timeout. Default: 0 (disabled)
keepalive_interval: DurationKeep-alive ping interval for WebSocket connections. Set to 0 to disable keep-alive pings. Default: 10 seconds
pong_timeout: DurationMaximum time to wait for a Pong response after sending a keepalive Ping. If no Pong (or any other frame) arrives within this window, the connection is considered dead and will be torn down / reconnected. Set to 0 to disable pong timeout checking. Default: 5 seconds
Implementations§
Source§impl KalamLinkTimeouts
impl KalamLinkTimeouts
Sourcepub fn builder() -> KalamLinkTimeoutsBuilder
pub fn builder() -> KalamLinkTimeoutsBuilder
Create a new builder for custom timeout configuration.
Sourcepub fn fast() -> KalamLinkTimeouts
pub fn fast() -> KalamLinkTimeouts
Create timeouts optimized for fast local development.
Uses shorter timeouts suitable for localhost connections.
Sourcepub fn relaxed() -> KalamLinkTimeouts
pub fn relaxed() -> KalamLinkTimeouts
Create timeouts optimized for high-latency or unreliable networks.
Uses longer timeouts suitable for cloud/remote connections.
Sourcepub fn for_testing(subscription_timeout_secs: u64) -> KalamLinkTimeouts
pub fn for_testing(subscription_timeout_secs: u64) -> KalamLinkTimeouts
Create timeouts suitable for testing with a specific subscription timeout.
This is useful for CLI integration tests that need to exit after receiving initial data rather than waiting forever for changes.
Sourcepub fn is_no_timeout(duration: Duration) -> bool
pub fn is_no_timeout(duration: Duration) -> bool
Check if a duration represents “no timeout” (zero or very large).
Trait Implementations§
Source§impl Clone for KalamLinkTimeouts
impl Clone for KalamLinkTimeouts
Source§fn clone(&self) -> KalamLinkTimeouts
fn clone(&self) -> KalamLinkTimeouts
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more