Skip to main content

BitmexDataClientConfig

Struct BitmexDataClientConfig 

Source
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: u64

REST timeout in seconds.

§max_retries: u32

Maximum retry attempts for REST requests.

§retry_delay_initial_ms: u64

Initial retry backoff in milliseconds.

§retry_delay_max_ms: u64

Maximum 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: u64

Receive 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: bool

When true, only active instruments are requested during bootstrap.

§update_instruments_interval_mins: Option<u64>

Optional interval (minutes) for instrument refresh from REST.

§environment: BitmexEnvironment

BitMEX environment (mainnet or testnet).

§max_requests_per_second: u32

Maximum number of requests per second (burst limit).

§max_requests_per_minute: u32

Maximum number of requests per minute (rolling window).

§transport_backend: TransportBackend

WebSocket transport backend (defaults to Tungstenite).

Implementations§

Source§

impl BitmexDataClientConfig

Source

pub fn builder() -> BitmexDataClientConfigBuilder

Create an instance of BitmexDataClientConfig using the builder syntax

Source§

impl BitmexDataClientConfig

Source

pub fn new() -> Self

Creates a configuration with default values.

Source

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).

Source

pub fn http_base_url(&self) -> String

Returns the REST base URL, considering overrides and the environment.

Source

pub fn ws_url(&self) -> String

Returns the WebSocket URL, considering overrides and the environment.

Trait Implementations§

Source§

impl ClientConfig for BitmexDataClientConfig

Source§

fn as_any(&self) -> &dyn Any

Return the configuration as a trait object.
Source§

impl Clone for BitmexDataClientConfig

Source§

fn clone(&self) -> BitmexDataClientConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for BitmexDataClientConfig

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for BitmexDataClientConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for BitmexDataClientConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for BitmexDataClientConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more