pub struct BybitDataClientConfig {Show 17 fields
pub api_key: Option<String>,
pub api_secret: Option<String>,
pub product_types: Vec<BybitProductType>,
pub environment: BybitEnvironment,
pub base_url_http: Option<String>,
pub base_url_ws_public: Option<String>,
pub base_url_ws_private: 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: u64,
pub recv_window_ms: u64,
pub update_instruments_interval_mins: Option<u64>,
pub instrument_status_poll_secs: Option<u64>,
pub transport_backend: TransportBackend,
}Expand description
Configuration for the Bybit live data client.
Fields§
§api_key: Option<String>Optional API key for authenticated REST/WebSocket requests.
api_secret: Option<String>Optional API secret for authenticated REST/WebSocket requests.
product_types: Vec<BybitProductType>Product types to subscribe to (e.g., Linear, Spot, Inverse, Option).
environment: BybitEnvironmentEnvironment selection (Mainnet, Testnet, Demo).
base_url_http: Option<String>Optional override for the REST base URL.
base_url_ws_public: Option<String>Optional override for the public WebSocket URL.
base_url_ws_private: Option<String>Optional override for the private 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: u64Heartbeat interval in seconds for WebSocket clients.
recv_window_ms: u64Receive window in milliseconds for signed requests.
update_instruments_interval_mins: Option<u64>Interval in minutes for instrument refresh from REST.
When None, instrument refresh is disabled.
instrument_status_poll_secs: Option<u64>Interval in seconds for polling instrument status changes.
When None, status polling is disabled.
transport_backend: TransportBackendWebSocket transport backend (defaults to Tungstenite).
Implementations§
Source§impl BybitDataClientConfig
impl BybitDataClientConfig
Sourcepub fn builder() -> BybitDataClientConfigBuilder
pub fn builder() -> BybitDataClientConfigBuilder
Create an instance of BybitDataClientConfig using the builder syntax
Source§impl BybitDataClientConfig
impl BybitDataClientConfig
Sourcepub fn has_api_credentials(&self) -> bool
pub fn has_api_credentials(&self) -> bool
Returns true if both API key and secret are available.
Sourcepub fn http_base_url(&self) -> String
pub fn http_base_url(&self) -> String
Returns the REST base URL, considering overrides and environment.
Sourcepub fn ws_public_url(&self) -> String
pub fn ws_public_url(&self) -> String
Returns the public WebSocket URL for the given product type.
Falls back to the first product type in the config if multiple are configured.
Sourcepub fn ws_public_url_for(&self, product_type: BybitProductType) -> String
pub fn ws_public_url_for(&self, product_type: BybitProductType) -> String
Returns the public WebSocket URL for a specific product type.
Sourcepub fn ws_private_url(&self) -> String
pub fn ws_private_url(&self) -> String
Returns the private WebSocket URL, considering overrides and environment.
Sourcepub fn requires_private_ws(&self) -> bool
pub fn requires_private_ws(&self) -> bool
Returns true when private WebSocket connection is required.
Trait Implementations§
Source§impl ClientConfig for BybitDataClientConfig
impl ClientConfig for BybitDataClientConfig
Source§impl Clone for BybitDataClientConfig
impl Clone for BybitDataClientConfig
Source§fn clone(&self) -> BybitDataClientConfig
fn clone(&self) -> BybitDataClientConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BybitDataClientConfig
impl Debug for BybitDataClientConfig
Source§impl Default for BybitDataClientConfig
impl Default for BybitDataClientConfig
Source§impl<'a, 'py> FromPyObject<'a, 'py> for BybitDataClientConfigwhere
Self: Clone,
impl<'a, 'py> FromPyObject<'a, 'py> for BybitDataClientConfigwhere
Self: Clone,
Source§impl<'py> IntoPyObject<'py> for BybitDataClientConfig
impl<'py> IntoPyObject<'py> for BybitDataClientConfig
Source§type Target = BybitDataClientConfig
type Target = BybitDataClientConfig
Source§type Output = Bound<'py, <BybitDataClientConfig as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <BybitDataClientConfig 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 BybitDataClientConfig
impl PyClass for BybitDataClientConfig
Source§impl PyClassImpl for BybitDataClientConfig
impl PyClassImpl for BybitDataClientConfig
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 Bybit live data client.
const RAW_DOC: &'static CStr = /// Configuration for the Bybit live data client.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<BybitDataClientConfig as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<BybitDataClientConfig>
type Layout = <<BybitDataClientConfig as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<BybitDataClientConfig>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
type Inventory = Pyo3MethodsInventoryForBybitDataClientConfig
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>
§fn dict_offset() -> Option<PyObjectOffset>
fn dict_offset() -> Option<PyObjectOffset>
§fn weaklist_offset() -> Option<PyObjectOffset>
fn weaklist_offset() -> Option<PyObjectOffset>
Source§impl PyClassNewTextSignature for BybitDataClientConfig
impl PyClassNewTextSignature for BybitDataClientConfig
const TEXT_SIGNATURE: &'static str = "(product_types=None, environment=None, api_key=None, api_secret=None, base_url_http=None, base_url_ws_public=None, base_url_ws_private=None, 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, update_instruments_interval_mins=None, instrument_status_poll_secs=None)"
Source§impl PyStubType for BybitDataClientConfig
impl PyStubType for BybitDataClientConfig
Source§fn type_output() -> TypeInfo
fn type_output() -> TypeInfo
§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
Source§impl PyTypeInfo for BybitDataClientConfig
impl PyTypeInfo for BybitDataClientConfig
Source§const NAME: &str = <Self as ::pyo3::PyClass>::NAME
const NAME: &str = <Self as ::pyo3::PyClass>::NAME
prefer using ::type_object(py).name() to get the correct runtime value
Source§const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
prefer using ::type_object(py).module() to get the correct runtime value
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.impl DerefToPyAny for BybitDataClientConfig
Auto Trait Implementations§
impl Freeze for BybitDataClientConfig
impl RefUnwindSafe for BybitDataClientConfig
impl Send for BybitDataClientConfig
impl Sync for BybitDataClientConfig
impl Unpin for BybitDataClientConfig
impl UnsafeUnpin for BybitDataClientConfig
impl UnwindSafe for BybitDataClientConfig
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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§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.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read more§impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
§fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>
fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
Use ::classinfo_object() instead and format the type name at runtime. Note that using built-in cast features is often better than manual PyTypeCheck usage.
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more