pub struct DeribitWebSocketClient { /* private fields */ }Expand description
WebSocket client for connecting to Deribit.
Implementations§
Source§impl DeribitWebSocketClient
impl DeribitWebSocketClient
Sourcepub fn new(
url: Option<String>,
api_key: Option<String>,
api_secret: Option<String>,
heartbeat_interval: Option<u64>,
is_testnet: bool,
) -> Result<Self>
pub fn new( url: Option<String>, api_key: Option<String>, api_secret: Option<String>, heartbeat_interval: Option<u64>, is_testnet: bool, ) -> Result<Self>
Creates a new DeribitWebSocketClient instance.
§Errors
Returns an error if only one of api_key or api_secret is provided.
Sourcepub fn new_public(is_testnet: bool) -> Result<Self>
pub fn new_public(is_testnet: bool) -> Result<Self>
Sourcepub fn with_credentials(is_testnet: bool) -> Result<Self>
pub fn with_credentials(is_testnet: bool) -> Result<Self>
Creates an authenticated client with credentials.
Uses environment variables to load credentials:
- Testnet:
DERIBIT_TESTNET_API_KEYandDERIBIT_TESTNET_API_SECRET - Mainnet:
DERIBIT_API_KEYandDERIBIT_API_SECRET
§Errors
Returns an error if credentials are not found in environment variables.
Sourcepub fn cancel_all_requests(&self)
pub fn cancel_all_requests(&self)
Cancel all pending WebSocket requests.
Sourcepub fn cancellation_token(&self) -> &CancellationToken
pub fn cancellation_token(&self) -> &CancellationToken
Returns the cancellation token for this client.
Sourcepub async fn wait_until_active(&self, timeout_secs: f64) -> DeribitWsResult<()>
pub async fn wait_until_active(&self, timeout_secs: f64) -> DeribitWsResult<()>
Waits until the client is active or timeout expires.
§Errors
Returns an error if the timeout expires before the client becomes active.
Sourcepub fn cache_instruments(&self, instruments: Vec<InstrumentAny>)
pub fn cache_instruments(&self, instruments: Vec<InstrumentAny>)
Caches instruments for use during message parsing.
Sourcepub fn cache_instrument(&self, instrument: InstrumentAny)
pub fn cache_instrument(&self, instrument: InstrumentAny)
Caches a single instrument.
Sourcepub async fn close(&self) -> DeribitWsResult<()>
pub async fn close(&self) -> DeribitWsResult<()>
Sourcepub fn stream(&mut self) -> impl Stream<Item = NautilusWsMessage> + 'static
pub fn stream(&mut self) -> impl Stream<Item = NautilusWsMessage> + 'static
Returns a stream of WebSocket messages.
§Panics
Panics if called before connect() or if called twice.
Sourcepub fn has_credentials(&self) -> bool
pub fn has_credentials(&self) -> bool
Returns whether the client has credentials configured.
Sourcepub fn is_authenticated(&self) -> bool
pub fn is_authenticated(&self) -> bool
Returns whether the client is authenticated.
Sourcepub async fn authenticate(
&self,
session_name: Option<&str>,
) -> DeribitWsResult<()>
pub async fn authenticate( &self, session_name: Option<&str>, ) -> DeribitWsResult<()>
Authenticates the WebSocket session with Deribit.
Uses the client_signature grant type with HMAC-SHA256 signature.
This must be called before subscribing to raw data streams.
§Arguments
session_name- Optional session name for session-scoped authentication. When provided, usessession:<name>scope which allows skippingaccess_tokenin subsequent private requests. WhenNone, uses defaultconnectionscope. Recommended to use session scope for order execution compatibility.
§Errors
Returns an error if:
- No credentials are configured
- The authentication request fails
- The authentication times out
Sourcepub async fn authenticate_session(&self) -> DeribitWsResult<()>
pub async fn authenticate_session(&self) -> DeribitWsResult<()>
Authenticates with session scope using default session name.
Convenience method equivalent to authenticate(Some("nautilus")).
Session-scoped authentication is recommended for order execution as it
allows skipping access_token in private method payloads.
§Errors
Returns an error if authentication fails.
Sourcepub async fn auth_state(&self) -> Option<AuthState>
pub async fn auth_state(&self) -> Option<AuthState>
Returns the current authentication state containing tokens.
Returns None if not authenticated or tokens haven’t been stored yet.
Sourcepub async fn access_token(&self) -> Option<String>
pub async fn access_token(&self) -> Option<String>
Returns the current access token if available.
Sourcepub async fn subscribe_trades(
&self,
instrument_id: InstrumentId,
interval: Option<DeribitUpdateInterval>,
) -> DeribitWsResult<()>
pub async fn subscribe_trades( &self, instrument_id: InstrumentId, interval: Option<DeribitUpdateInterval>, ) -> DeribitWsResult<()>
Sourcepub async fn subscribe_trades_raw(
&self,
instrument_id: InstrumentId,
) -> DeribitWsResult<()>
pub async fn subscribe_trades_raw( &self, instrument_id: InstrumentId, ) -> DeribitWsResult<()>
Subscribes to raw trade updates (requires authentication).
Convenience method equivalent to subscribe_trades(id, Some(DeribitUpdateInterval::Raw)).
§Errors
Returns an error if not authenticated or subscription fails.
Sourcepub async fn unsubscribe_trades(
&self,
instrument_id: InstrumentId,
interval: Option<DeribitUpdateInterval>,
) -> DeribitWsResult<()>
pub async fn unsubscribe_trades( &self, instrument_id: InstrumentId, interval: Option<DeribitUpdateInterval>, ) -> DeribitWsResult<()>
Unsubscribes from trade updates for an instrument.
§Errors
Returns an error if unsubscription fails.
Sourcepub async fn subscribe_book(
&self,
instrument_id: InstrumentId,
interval: Option<DeribitUpdateInterval>,
) -> DeribitWsResult<()>
pub async fn subscribe_book( &self, instrument_id: InstrumentId, interval: Option<DeribitUpdateInterval>, ) -> DeribitWsResult<()>
Sourcepub async fn subscribe_book_raw(
&self,
instrument_id: InstrumentId,
) -> DeribitWsResult<()>
pub async fn subscribe_book_raw( &self, instrument_id: InstrumentId, ) -> DeribitWsResult<()>
Subscribes to raw order book updates (requires authentication).
Convenience method equivalent to subscribe_book(id, Some(DeribitUpdateInterval::Raw)).
§Errors
Returns an error if not authenticated or subscription fails.
Sourcepub async fn unsubscribe_book(
&self,
instrument_id: InstrumentId,
interval: Option<DeribitUpdateInterval>,
) -> DeribitWsResult<()>
pub async fn unsubscribe_book( &self, instrument_id: InstrumentId, interval: Option<DeribitUpdateInterval>, ) -> DeribitWsResult<()>
Unsubscribes from order book updates for an instrument.
§Errors
Returns an error if unsubscription fails.
Sourcepub async fn subscribe_ticker(
&self,
instrument_id: InstrumentId,
interval: Option<DeribitUpdateInterval>,
) -> DeribitWsResult<()>
pub async fn subscribe_ticker( &self, instrument_id: InstrumentId, interval: Option<DeribitUpdateInterval>, ) -> DeribitWsResult<()>
Sourcepub async fn subscribe_ticker_raw(
&self,
instrument_id: InstrumentId,
) -> DeribitWsResult<()>
pub async fn subscribe_ticker_raw( &self, instrument_id: InstrumentId, ) -> DeribitWsResult<()>
Subscribes to raw ticker updates (requires authentication).
Convenience method equivalent to subscribe_ticker(id, Some(DeribitUpdateInterval::Raw)).
§Errors
Returns an error if not authenticated or subscription fails.
Sourcepub async fn unsubscribe_ticker(
&self,
instrument_id: InstrumentId,
interval: Option<DeribitUpdateInterval>,
) -> DeribitWsResult<()>
pub async fn unsubscribe_ticker( &self, instrument_id: InstrumentId, interval: Option<DeribitUpdateInterval>, ) -> DeribitWsResult<()>
Unsubscribes from ticker updates for an instrument.
§Errors
Returns an error if unsubscription fails.
Sourcepub async fn subscribe_quotes(
&self,
instrument_id: InstrumentId,
) -> DeribitWsResult<()>
pub async fn subscribe_quotes( &self, instrument_id: InstrumentId, ) -> DeribitWsResult<()>
Subscribes to quote (best bid/ask) updates for an instrument.
Note: Quote channel does not support interval parameter.
§Errors
Returns an error if subscription fails.
Sourcepub async fn unsubscribe_quotes(
&self,
instrument_id: InstrumentId,
) -> DeribitWsResult<()>
pub async fn unsubscribe_quotes( &self, instrument_id: InstrumentId, ) -> DeribitWsResult<()>
Unsubscribes from quote updates for an instrument.
§Errors
Returns an error if unsubscription fails.
Sourcepub async fn unsubscribe(&self, channels: Vec<String>) -> DeribitWsResult<()>
pub async fn unsubscribe(&self, channels: Vec<String>) -> DeribitWsResult<()>
Source§impl DeribitWebSocketClient
impl DeribitWebSocketClient
pub fn py_url(&self) -> String
pub fn py_is_testnet(&self) -> bool
pub fn py_cancel_all_requests(&self)
Sourcepub fn py_cache_instruments(
&self,
py: Python<'_>,
instruments: Vec<Py<PyAny>>,
) -> PyResult<()>
pub fn py_cache_instruments( &self, py: Python<'_>, instruments: Vec<Py<PyAny>>, ) -> PyResult<()>
Caches instruments for use during message parsing.
§Errors
Returns a Python exception if converting instruments fails.
Sourcepub fn py_cache_instrument(
&self,
py: Python<'_>,
instrument: Py<PyAny>,
) -> PyResult<()>
pub fn py_cache_instrument( &self, py: Python<'_>, instrument: Py<PyAny>, ) -> PyResult<()>
Trait Implementations§
Source§impl Clone for DeribitWebSocketClient
impl Clone for DeribitWebSocketClient
Source§fn clone(&self) -> DeribitWebSocketClient
fn clone(&self) -> DeribitWebSocketClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DeribitWebSocketClient
impl Debug for DeribitWebSocketClient
Source§impl<'py> IntoPyObject<'py> for DeribitWebSocketClient
impl<'py> IntoPyObject<'py> for DeribitWebSocketClient
Source§type Target = DeribitWebSocketClient
type Target = DeribitWebSocketClient
Source§type Output = Bound<'py, <DeribitWebSocketClient as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <DeribitWebSocketClient 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 DeribitWebSocketClient
impl PyClass for DeribitWebSocketClient
Source§impl PyClassImpl for DeribitWebSocketClient
impl PyClassImpl for DeribitWebSocketClient
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 = /// WebSocket client for connecting to Deribit.
const RAW_DOC: &'static CStr = /// WebSocket client for connecting to Deribit.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<DeribitWebSocketClient>
type ThreadChecker = SendablePyClass<DeribitWebSocketClient>
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<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature for DeribitWebSocketClient
impl PyClassNewTextSignature for DeribitWebSocketClient
const TEXT_SIGNATURE: &'static str = "(url=None, api_key=None, api_secret=None, heartbeat_interval=None, is_testnet=False)"
Source§impl PyMethods<DeribitWebSocketClient> for PyClassImplCollector<DeribitWebSocketClient>
impl PyMethods<DeribitWebSocketClient> for PyClassImplCollector<DeribitWebSocketClient>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for DeribitWebSocketClient
impl PyTypeInfo for DeribitWebSocketClient
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 DeribitWebSocketClient
impl ExtractPyClassWithClone for DeribitWebSocketClient
Auto Trait Implementations§
impl Freeze for DeribitWebSocketClient
impl !RefUnwindSafe for DeribitWebSocketClient
impl Send for DeribitWebSocketClient
impl Sync for DeribitWebSocketClient
impl Unpin for DeribitWebSocketClient
impl !UnwindSafe for DeribitWebSocketClient
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
§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