Skip to main content

KrakenFuturesWebSocketClient

Struct KrakenFuturesWebSocketClient 

Source
pub struct KrakenFuturesWebSocketClient { /* private fields */ }
Expand description

WebSocket client for the Kraken Futures v1 streaming API.

Implementations§

Source§

impl KrakenFuturesWebSocketClient

Source

pub fn new(url: String, heartbeat_secs: u64, proxy_url: Option<String>) -> Self

Creates a new client with the given URL.

Source

pub fn with_credentials( url: String, heartbeat_secs: u64, credential: Option<KrakenCredential>, transport_backend: TransportBackend, proxy_url: Option<String>, ) -> Self

Creates a new client with API credentials for authenticated feeds.

Source

pub fn has_credentials(&self) -> bool

Returns true if the client has API credentials set.

Source

pub fn url(&self) -> &str

Returns the WebSocket URL.

Source

pub fn is_closed(&self) -> bool

Returns true if the connection is closed.

Source

pub fn is_active(&self) -> bool

Returns true if the connection is active.

Source

pub async fn wait_until_active( &self, timeout_secs: f64, ) -> Result<(), KrakenWsError>

Waits until the WebSocket connection is active or timeout.

Source

pub fn is_authenticated(&self) -> bool

Returns true if the WebSocket is authenticated for private feeds.

Source

pub async fn wait_until_authenticated( &self, timeout_secs: f64, ) -> Result<(), KrakenWsError>

Waits until the WebSocket is authenticated or the timeout elapses.

Returns an error on timeout or explicit auth failure.

Source

pub async fn authenticate(&self) -> Result<(), KrakenWsError>

Authenticates the WebSocket connection for private feeds.

Sends a challenge request and waits for the handler to parse the response, sign it, and mark the AuthTracker successful. Private subscriptions gate on the stored challenge / signed-challenge pair.

Source

pub async fn connect(&mut self) -> Result<(), KrakenWsError>

Connects to the WebSocket server.

Source

pub async fn disconnect(&mut self) -> Result<(), KrakenWsError>

Disconnects from the WebSocket server.

Source

pub async fn close(&mut self) -> Result<(), KrakenWsError>

Closes the WebSocket connection.

Source

pub async fn subscribe_mark_price( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Subscribes to mark price updates for the given instrument.

Source

pub async fn unsubscribe_mark_price( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Unsubscribes from mark price updates for the given instrument.

Source

pub async fn subscribe_index_price( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Subscribes to index price updates for the given instrument.

Source

pub async fn unsubscribe_index_price( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Unsubscribes from index price updates for the given instrument.

Source

pub async fn subscribe_funding_rate( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Subscribes to funding rate updates for the given instrument.

Source

pub async fn unsubscribe_funding_rate( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Unsubscribes from funding rate updates for the given instrument.

Source

pub async fn subscribe_quotes( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Subscribes to quote updates for the given instrument.

Uses the order book channel for low-latency top-of-book quotes.

Source

pub async fn unsubscribe_quotes( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Unsubscribes from quote updates for the given instrument.

Source

pub async fn subscribe_trades( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Subscribes to trade updates for the given instrument.

Source

pub async fn unsubscribe_trades( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Unsubscribes from trade updates for the given instrument.

Source

pub async fn subscribe_book( &self, instrument_id: InstrumentId, _depth: Option<u32>, ) -> Result<(), KrakenWsError>

Subscribes to order book updates for the given instrument.

Note: The depth parameter is accepted for API compatibility with spot client but is not used by Kraken Futures (full book is always returned).

Source

pub async fn unsubscribe_book( &self, instrument_id: InstrumentId, ) -> Result<(), KrakenWsError>

Unsubscribes from order book updates for the given instrument.

Source

pub fn take_output_rx( &mut self, ) -> Option<UnboundedReceiver<KrakenFuturesWsMessage>>

Gets the output receiver for processed messages.

Source

pub async fn set_auth_credentials( &self, original_challenge: String, signed_challenge: String, ) -> Result<(), KrakenWsError>

Set authentication credentials directly (for when challenge is obtained externally).

Source

pub fn sign_challenge(&self, challenge: &str) -> Result<String, KrakenWsError>

Sign a challenge with the API credentials.

Returns the signed challenge on success.

Source

pub async fn authenticate_with_challenge( &self, challenge: &str, ) -> Result<(), KrakenWsError>

Complete authentication with a received challenge.

Source

pub fn set_account_id(&self, account_id: AccountId)

Sets the account ID for execution report parsing.

Source

pub fn account_id(&self) -> Option<AccountId>

Returns the account ID if set.

Source

pub fn account_id_shared(&self) -> &Arc<RwLock<Option<AccountId>>>

Returns a reference to the shared account ID.

Source

pub fn truncated_id_map(&self) -> &Arc<AtomicMap<String, ClientOrderId>>

Returns a reference to the truncated ID map.

Source

pub fn order_instrument_map(&self) -> &Arc<AtomicMap<String, InstrumentId>>

Returns a reference to the order-to-instrument map.

Source

pub fn instruments_shared(&self) -> &Arc<AtomicMap<InstrumentId, InstrumentAny>>

Returns a reference to the shared instruments map.

Source

pub fn subscriptions(&self) -> &SubscriptionState

Returns a reference to the subscription state.

Source

pub fn cache_instrument(&self, instrument: InstrumentAny)

Caches an instrument for execution report parsing.

Source

pub fn cache_instruments(&self, instruments: &[InstrumentAny])

Caches multiple instruments for execution report parsing.

Source

pub fn cache_client_order( &self, client_order_id: ClientOrderId, venue_order_id: Option<VenueOrderId>, instrument_id: InstrumentId, _trader_id: TraderId, _strategy_id: StrategyId, )

Caches a client order for truncated ID resolution and instrument lookup.

Kraken Futures limits client order IDs to 18 characters, so orders with longer IDs are truncated. This method stores the mapping from truncated to full ID, and from venue order ID to instrument ID for cancel messages.

Source

pub async fn subscribe_open_orders(&self) -> Result<(), KrakenWsError>

Subscribes to open orders feed (private, requires authentication).

Source

pub async fn subscribe_fills(&self) -> Result<(), KrakenWsError>

Subscribes to fills feed (private, requires authentication).

Source

pub async fn subscribe_executions(&self) -> Result<(), KrakenWsError>

Subscribes to both open orders and fills (convenience method).

Source§

impl KrakenFuturesWebSocketClient

Source

pub fn py_has_credentials(&self) -> bool

Returns true if the client has API credentials set.

Source

pub fn py_url(&self) -> &str

Returns the WebSocket URL.

Trait Implementations§

Source§

impl Clone for KrakenFuturesWebSocketClient

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for KrakenFuturesWebSocketClient

Source§

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

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

impl<'a, 'py> FromPyObject<'a, 'py> for KrakenFuturesWebSocketClient
where Self: Clone,

Source§

type Error = PyClassGuardError<'a, 'py>

The type returned in the event of a conversion error. Read more
Source§

fn extract( obj: Borrowed<'a, 'py, PyAny>, ) -> Result<Self, <Self as FromPyObject<'a, 'py>>::Error>

Extracts Self from the bound smart pointer obj. Read more
Source§

impl<'py> IntoPyObject<'py> for KrakenFuturesWebSocketClient

Source§

type Target = KrakenFuturesWebSocketClient

The Python output type
Source§

type Output = Bound<'py, <KrakenFuturesWebSocketClient as IntoPyObject<'py>>::Target>

The smart pointer type to use. Read more
Source§

type Error = PyErr

The type returned in the event of a conversion error.
Source§

fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>

Performs the conversion.
Source§

impl PyClass for KrakenFuturesWebSocketClient

Source§

const NAME: &str = "KrakenFuturesWebSocketClient"

Name of the class. Read more
Source§

type Frozen = False

Whether the pyclass is frozen. Read more
Source§

impl PyClassImpl for KrakenFuturesWebSocketClient

Source§

const MODULE: Option<&str>

Module which the class will be associated with. Read more
Source§

const IS_BASETYPE: bool = false

#[pyclass(subclass)]
Source§

const IS_SUBCLASS: bool = false

#[pyclass(extends=…)]
Source§

const IS_MAPPING: bool = false

#[pyclass(mapping)]
Source§

const IS_SEQUENCE: bool = false

#[pyclass(sequence)]
Source§

const IS_IMMUTABLE_TYPE: bool = false

#[pyclass(immutable_type)]
Source§

const RAW_DOC: &'static CStr = /// WebSocket client for the Kraken Futures v1 streaming API.

Docstring for the class provided on the struct or enum. Read more
Source§

const DOC: &'static CStr

Fully rendered class doc, including the text_signature if a constructor is defined. Read more
Source§

type Layout = <<KrakenFuturesWebSocketClient as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<KrakenFuturesWebSocketClient>

Description of how this class is laid out in memory
Source§

type BaseType = PyAny

Base class
Source§

type ThreadChecker = NoopThreadChecker

This handles following two situations: Read more
Source§

type Inventory = Pyo3MethodsInventoryForKrakenFuturesWebSocketClient

Source§

type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild

Immutable or mutable
Source§

type Dict = PyClassDummySlot

Specify this class has #[pyclass(dict)] or not.
Source§

type WeakRef = PyClassDummySlot

Specify this class has #[pyclass(weakref)] or not.
Source§

type BaseNativeType = PyAny

The closest native ancestor. This is PyAny by default, and when you declare #[pyclass(extends=PyDict)], it’s PyDict.
Source§

fn items_iter() -> PyClassItemsIter

Source§

fn lazy_type_object() -> &'static LazyTypeObject<Self>

§

fn dict_offset() -> Option<PyObjectOffset>

Used to provide the dictoffset slot (equivalent to tp_dictoffset)
§

fn weaklist_offset() -> Option<PyObjectOffset>

Used to provide the weaklistoffset slot (equivalent to tp_weaklistoffset
Source§

impl PyClassNewTextSignature for KrakenFuturesWebSocketClient

Source§

const TEXT_SIGNATURE: &'static str = "(environment=None, base_url=None, heartbeat_secs=60, api_key=None, api_secret=None, proxy_url=None)"

Source§

impl PyStubType for KrakenFuturesWebSocketClient

Source§

fn type_output() -> TypeInfo

The type to be used in the output signature, i.e. return type of the Python function or methods.
§

fn type_input() -> TypeInfo

The type to be used in the input signature, i.e. the arguments of the Python function or methods. Read more
Source§

impl PyTypeInfo for KrakenFuturesWebSocketClient

Source§

const NAME: &str = <Self as ::pyo3::PyClass>::NAME

👎Deprecated since 0.28.0:

prefer using ::type_object(py).name() to get the correct runtime value

Class name.
Source§

const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE

👎Deprecated since 0.28.0:

prefer using ::type_object(py).module() to get the correct runtime value

Module name, if any.
Source§

fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
§

fn type_object(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
§

fn is_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
§

fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.
Source§

impl DerefToPyAny for KrakenFuturesWebSocketClient

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<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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 T
where T: IntoPyObject<'py>,

§

fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>

Converts self into an owned Python object, dropping type information.
§

fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>

Converts 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>

Converts self into a Python object. Read more
§

impl<'py, T> IntoPyObjectNautilusExt<'py> for T
where T: IntoPyObjectExt<'py>,

§

fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>

Convert self into a [Py<PyAny>] while panicking if the conversion fails. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: 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
§

impl<T> PyErrArguments for T
where T: for<'py> IntoPyObject<'py> + Send + Sync,

§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
§

impl<T> PyTypeCheck for T
where T: PyTypeInfo,

§

const NAME: &'static str = T::NAME

👎Deprecated since 0.27.0:

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.

Name of self. This is used in error messages, for example.
§

fn type_check(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of Self, which may include a subtype. Read more
§

fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>

Returns the expected type as a possible argument for the isinstance and issubclass function. Read more
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<'py, T> FromPyObjectOwned<'py> for T
where T: for<'a> FromPyObject<'a, 'py>,

§

impl<T> Ungil for T
where T: Send,