pub struct BitmexDataClientConfig {Show 17 fields
pub api_key: Option<String>,
pub api_secret: Option<String>,
pub base_url_http: Option<String>,
pub base_url_ws: Option<String>,
pub http_proxy_url: Option<String>,
pub ws_proxy_url: Option<String>,
pub http_timeout_secs: Option<u64>,
pub max_retries: Option<u32>,
pub retry_delay_initial_ms: Option<u64>,
pub retry_delay_max_ms: Option<u64>,
pub heartbeat_interval_secs: Option<u64>,
pub recv_window_ms: Option<u64>,
pub active_only: bool,
pub update_instruments_interval_mins: Option<u64>,
pub use_testnet: bool,
pub max_requests_per_second: Option<u32>,
pub max_requests_per_minute: Option<u32>,
}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.
http_proxy_url: Option<String>Optional HTTP proxy URL for general HTTP client operations.
ws_proxy_url: Option<String>Optional WebSocket proxy URL for WebSocket client.
Note: WebSocket proxy support is not yet implemented. This field is reserved
for future functionality. Use http_proxy_url for REST API proxy support.
http_timeout_secs: Option<u64>Optional REST timeout in seconds.
max_retries: Option<u32>Optional maximum retry attempts for REST requests.
retry_delay_initial_ms: Option<u64>Optional initial retry backoff in milliseconds.
retry_delay_max_ms: Option<u64>Optional maximum retry backoff in milliseconds.
heartbeat_interval_secs: Option<u64>Optional heartbeat interval (seconds) for the WebSocket client.
recv_window_ms: Option<u64>Optional receive window in milliseconds for signed requests (default 10_000).
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.
use_testnet: boolWhen true, use BitMEX testnet endpoints by default.
max_requests_per_second: Option<u32>Maximum number of requests per second (burst limit).
max_requests_per_minute: Option<u32>Maximum number of requests per minute (rolling window).
Implementations§
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 testnet flag.
Trait Implementations§
Source§impl Clone for BitmexDataClientConfig
impl Clone for BitmexDataClientConfig
Source§fn clone(&self) -> BitmexDataClientConfig
fn clone(&self) -> BitmexDataClientConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BitmexDataClientConfig
impl Debug for BitmexDataClientConfig
Source§impl Default for BitmexDataClientConfig
impl Default for BitmexDataClientConfig
Source§impl<'a, 'py> FromPyObject<'a, 'py> for BitmexDataClientConfigwhere
Self: Clone,
impl<'a, 'py> FromPyObject<'a, 'py> for BitmexDataClientConfigwhere
Self: Clone,
Source§impl<'py> IntoPyObject<'py> for BitmexDataClientConfig
impl<'py> IntoPyObject<'py> for BitmexDataClientConfig
Source§type Target = BitmexDataClientConfig
type Target = BitmexDataClientConfig
Source§type Output = Bound<'py, <BitmexDataClientConfig as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <BitmexDataClientConfig as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for BitmexDataClientConfig
impl PyClass for BitmexDataClientConfig
Source§impl PyClassImpl for BitmexDataClientConfig
impl PyClassImpl for BitmexDataClientConfig
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = /// Configuration for the BitMEX live data client.
const RAW_DOC: &'static CStr = /// Configuration for the BitMEX live data client.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<BitmexDataClientConfig as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<BitmexDataClientConfig>
type Layout = <<BitmexDataClientConfig as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<BitmexDataClientConfig>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
Source§fn dict_offset() -> Option<PyObjectOffset>
fn dict_offset() -> Option<PyObjectOffset>
Source§fn weaklist_offset() -> Option<PyObjectOffset>
fn weaklist_offset() -> Option<PyObjectOffset>
Source§impl PyClassNewTextSignature for BitmexDataClientConfig
impl PyClassNewTextSignature for BitmexDataClientConfig
const TEXT_SIGNATURE: &'static str = "(api_key=None, api_secret=None, base_url_http=None, base_url_ws=None, http_proxy_url=None, http_timeout_secs=None, max_retries=None, retry_delay_initial_ms=None, retry_delay_max_ms=None, heartbeat_interval_secs=None, recv_window_ms=None, active_only=None, update_instruments_interval_mins=None, use_testnet=None, max_requests_per_second=None, max_requests_per_minute=None)"
Source§impl PyMethods<BitmexDataClientConfig> for PyClassImplCollector<BitmexDataClientConfig>
impl PyMethods<BitmexDataClientConfig> for PyClassImplCollector<BitmexDataClientConfig>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for BitmexDataClientConfig
impl PyTypeInfo for BitmexDataClientConfig
Source§const NAME: &str = <Self as ::pyo3::PyClass>::NAME
const NAME: &str = <Self as ::pyo3::PyClass>::NAME
::type_object(py).name() to get the correct runtime valueSource§const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
::type_object(py).module() to get the correct runtime valueSource§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Source§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
impl DerefToPyAny for BitmexDataClientConfig
Auto Trait Implementations§
impl Freeze for BitmexDataClientConfig
impl RefUnwindSafe for BitmexDataClientConfig
impl Send for BitmexDataClientConfig
impl Sync for BitmexDataClientConfig
impl Unpin for BitmexDataClientConfig
impl UnsafeUnpin for BitmexDataClientConfig
impl UnwindSafe for BitmexDataClientConfig
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
Source§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.