pub struct BitmexDataClientConfig {Show 18 fields
pub api_key: Option<String>,
pub api_secret: Option<String>,
pub base_url_http: Option<String>,
pub base_url_ws: Option<String>,
pub proxy_url: Option<String>,
pub http_timeout_secs: u64,
pub max_retries: u32,
pub retry_delay_initial_ms: u64,
pub retry_delay_max_ms: u64,
pub heartbeat_interval_secs: Option<u64>,
pub auth_timeout_secs: Option<u64>,
pub recv_window_ms: u64,
pub active_only: bool,
pub update_instruments_interval_mins: Option<u64>,
pub environment: BitmexEnvironment,
pub max_requests_per_second: u32,
pub max_requests_per_minute: u32,
pub transport_backend: TransportBackend,
}Expand description
Configuration for the BitMEX live data client.
Fields§
§api_key: Option<String>Optional API key used for authenticated REST/WebSocket requests.
api_secret: Option<String>Optional API secret used for authenticated REST/WebSocket requests.
base_url_http: Option<String>Optional override for the REST base URL.
base_url_ws: Option<String>Optional override for the WebSocket URL.
proxy_url: Option<String>Optional proxy URL for HTTP and WebSocket transports.
http_timeout_secs: u64REST timeout in seconds.
max_retries: u32Maximum retry attempts for REST requests.
retry_delay_initial_ms: u64Initial retry backoff in milliseconds.
retry_delay_max_ms: u64Maximum retry backoff in milliseconds.
heartbeat_interval_secs: Option<u64>Optional heartbeat interval (seconds) for the WebSocket client.
auth_timeout_secs: Option<u64>Optional WebSocket authentication timeout (seconds), defaulting to
AUTHENTICATION_TIMEOUT_SECS when unset.
recv_window_ms: u64Receive window in milliseconds for signed requests.
This value determines how far in the future the api-expires timestamp will be set
for signed REST requests. BitMEX uses seconds-granularity Unix timestamps in the
api-expires header, calculated as: current_timestamp + (recv_window_ms / 1000).
Note: This parameter is specified in milliseconds for consistency with other
adapter configurations (e.g., Bybit’s recv_window_ms), but BitMEX only supports
seconds-granularity timestamps. The value is converted via integer division, so
10000ms becomes 10 seconds, 15500ms becomes 15 seconds, etc.
A larger window provides more tolerance for clock skew and network latency, but increases the replay attack window. The default of 10 seconds should be sufficient for most deployments. Consider increasing this value (e.g., to 30_000ms = 30s) if you experience request expiration errors due to clock drift or high network latency.
active_only: boolWhen true, only active instruments are requested during bootstrap.
update_instruments_interval_mins: Option<u64>Optional interval (minutes) for instrument refresh from REST.
environment: BitmexEnvironmentBitMEX environment (mainnet or testnet).
max_requests_per_second: u32Maximum number of requests per second (burst limit).
max_requests_per_minute: u32Maximum number of requests per minute (rolling window).
transport_backend: TransportBackendWebSocket transport backend (defaults to Tungstenite).
Implementations§
Source§impl BitmexDataClientConfig
impl BitmexDataClientConfig
Sourcepub fn builder() -> BitmexDataClientConfigBuilder
pub fn builder() -> BitmexDataClientConfigBuilder
Create an instance of BitmexDataClientConfig using the builder syntax
Source§impl BitmexDataClientConfig
impl BitmexDataClientConfig
Sourcepub fn has_api_credentials(&self) -> bool
pub fn has_api_credentials(&self) -> bool
Returns true if both API key and secret are available
(either explicitly set or resolvable from environment variables).
Sourcepub fn http_base_url(&self) -> String
pub fn http_base_url(&self) -> String
Returns the REST base URL, considering overrides and the environment.
Trait Implementations§
Source§impl Clone for BitmexDataClientConfig
impl Clone for BitmexDataClientConfig
Source§fn clone(&self) -> BitmexDataClientConfig
fn clone(&self) -> BitmexDataClientConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more