Skip to main content

CoinApiDataClient

Struct CoinApiDataClient 

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

CoinAPI data client streaming order books, quotes, trades, and OHLCV bars for configured native instruments.

Connecting loads the configured instruments, emits them, and retains the CoinAPI symbol_id of each one for subscriptions and historical requests. Every subscription shares one WebSocket connection, which replays its scope after a transport reconnect. Instrument refreshes update precision and REST symbol IDs; subscriptions retain their connect-time symbol IDs until the data client disconnects and connects again.

Book deltas stream from the full book channel for L2 books and from book_l3 for L3 books, with sequence gap detection and recovery. Depth snapshots stream from the cheapest of book5, book20, and book50 that lists the requested depth, ten levels by default. CoinAPI allows one book channel per connection, so every book subscription must use the same channel.

Implementations§

Source§

impl CoinApiDataClient

Source

pub fn new(client_id: ClientId, config: CoinApiDataClientConfig) -> Result<Self>

Creates a client without connecting.

§Errors

Returns an error if no valid API key resolves from the config or COINAPI_API_KEY, when an instrument selection is empty, repeats an instrument, or names an instrument that does not map to its exchange, or when the REST or WebSocket configuration is invalid.

§Panics

Panics if the data event sender is not initialized on this thread.

Trait Implementations§

Source§

impl DataClient for CoinApiDataClient

Source§

fn client_id(&self) -> ClientId

Returns the unique identifier for this data client.
Source§

fn venue(&self) -> Option<Venue>

Returns the optional venue this client is associated with.
Source§

fn start(&mut self) -> Result<()>

Starts the data client. Read more
Source§

fn stop(&mut self) -> Result<()>

Stops the data client. Read more
Source§

fn reset(&mut self) -> Result<()>

Resets the data client to its initial state. Read more
Source§

fn dispose(&mut self) -> Result<()>

Disposes of client resources and cleans up. Read more
Source§

fn is_connected(&self) -> bool

Returns true if the client is currently connected.
Source§

fn is_disconnected(&self) -> bool

Returns true if the client is currently disconnected.
Source§

fn connect<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Connects the client to the data provider. Read more
Source§

fn disconnect<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Disconnects the client from the data provider. Read more
Source§

fn subscribe_book_deltas(&mut self, cmd: SubscribeBookDeltas) -> Result<()>

Subscribes to order book delta updates for the specified instrument. Read more
Source§

fn subscribe_book_depth(&mut self, cmd: SubscribeBookDepth) -> Result<()>

Subscribes to order book depth snapshot updates for the specified instrument. Read more
Source§

fn subscribe_quotes(&mut self, cmd: SubscribeQuotes) -> Result<()>

Subscribes to quote updates for the specified instrument. Read more
Source§

fn subscribe_trades(&mut self, cmd: SubscribeTrades) -> Result<()>

Subscribes to trade updates for the specified instrument. Read more
Source§

fn subscribe_bars(&mut self, cmd: SubscribeBars) -> Result<()>

Subscribes to bar updates of the specified bar type. Read more
Source§

fn unsubscribe_book_deltas(&mut self, cmd: &UnsubscribeBookDeltas) -> Result<()>

Unsubscribes from order book delta updates for the specified instrument. Read more
Source§

fn unsubscribe_book_depth(&mut self, cmd: &UnsubscribeBookDepth) -> Result<()>

Unsubscribes from order book depth snapshot updates for the specified instrument. Read more
Source§

fn unsubscribe_quotes(&mut self, cmd: &UnsubscribeQuotes) -> Result<()>

Unsubscribes from quote updates for the specified instrument. Read more
Source§

fn unsubscribe_trades(&mut self, cmd: &UnsubscribeTrades) -> Result<()>

Unsubscribes from trade updates for the specified instrument. Read more
Source§

fn unsubscribe_bars(&mut self, cmd: &UnsubscribeBars) -> Result<()>

Unsubscribes from bar updates of the specified bar type. Read more
Source§

fn request_instruments(&self, request: RequestInstruments) -> Result<()>

Requests a list of instruments from the provider for a given venue. Read more
Source§

fn request_instrument(&self, request: RequestInstrument) -> Result<()>

Requests detailed data for a single instrument. Read more
Source§

fn request_book_snapshot(&self, request: RequestBookSnapshot) -> Result<()>

Requests a snapshot of the order book for a specified instrument. Read more
Source§

fn request_quotes(&self, request: RequestQuotes) -> Result<()>

Requests historical or streaming quote data for a specified instrument. Read more
Source§

fn request_trades(&self, request: RequestTrades) -> Result<()>

Requests historical or streaming trade data for a specified instrument. Read more
Source§

fn request_bars(&self, request: RequestBars) -> Result<()>

Requests historical or streaming bar data for a specified instrument and bar type. Read more
§

fn subscribe(&mut self, cmd: SubscribeCustomData) -> Result<(), Error>

Subscribes to custom data types according to the command. Read more
§

fn subscribe_instruments( &mut self, cmd: SubscribeInstruments, ) -> Result<(), Error>

Subscribes to instruments list for the specified venue. Read more
§

fn subscribe_instrument( &mut self, cmd: SubscribeInstrument, ) -> Result<(), Error>

Subscribes to data for a single instrument. Read more
§

fn subscribe_mark_prices( &mut self, cmd: SubscribeMarkPrices, ) -> Result<(), Error>

Subscribes to mark price updates for the specified instrument. Read more
§

fn subscribe_index_prices( &mut self, cmd: SubscribeIndexPrices, ) -> Result<(), Error>

Subscribes to index price updates for the specified instrument. Read more
§

fn subscribe_funding_rates( &mut self, cmd: SubscribeFundingRates, ) -> Result<(), Error>

Subscribes to funding rate updates for the specified instrument. Read more
§

fn subscribe_instrument_status( &mut self, cmd: SubscribeInstrumentStatus, ) -> Result<(), Error>

Subscribes to status updates for the specified instrument. Read more
§

fn subscribe_instrument_close( &mut self, cmd: SubscribeInstrumentClose, ) -> Result<(), Error>

Subscribes to instrument close events for the specified instrument. Read more
§

fn subscribe_option_greeks( &mut self, cmd: SubscribeOptionGreeks, ) -> Result<(), Error>

Subscribes to exchange-provided option greeks for the specified instrument. Read more
§

fn subscribe_blocks(&mut self, cmd: SubscribeBlocks) -> Result<(), Error>

Subscribes to blocks for a specified blockchain. Read more
§

fn subscribe_pool(&mut self, cmd: SubscribePool) -> Result<(), Error>

Subscribes to pool definition updates for a specified AMM pool. Read more
§

fn subscribe_pool_swaps(&mut self, cmd: SubscribePoolSwaps) -> Result<(), Error>

Subscribes to pool swaps for a specified AMM pool. Read more
§

fn subscribe_pool_liquidity_updates( &mut self, cmd: SubscribePoolLiquidityUpdates, ) -> Result<(), Error>

Subscribes to pool liquidity updates for a specified AMM pool. Read more
§

fn subscribe_pool_fee_collects( &mut self, cmd: SubscribePoolFeeCollects, ) -> Result<(), Error>

Subscribes to pool fee collects for a specified AMM pool. Read more
§

fn subscribe_pool_flash_events( &mut self, cmd: SubscribePoolFlashEvents, ) -> Result<(), Error>

Subscribes to pool flash loan events for a specified AMM pool. Read more
§

fn unsubscribe(&mut self, cmd: &UnsubscribeCustomData) -> Result<(), Error>

Unsubscribes from custom data types according to the command. Read more
§

fn unsubscribe_instruments( &mut self, cmd: &UnsubscribeInstruments, ) -> Result<(), Error>

Unsubscribes from instruments list for the specified venue. Read more
§

fn unsubscribe_instrument( &mut self, cmd: &UnsubscribeInstrument, ) -> Result<(), Error>

Unsubscribes from data for the specified instrument. Read more
§

fn unsubscribe_mark_prices( &mut self, cmd: &UnsubscribeMarkPrices, ) -> Result<(), Error>

Unsubscribes from mark price updates for the specified instrument. Read more
§

fn unsubscribe_index_prices( &mut self, cmd: &UnsubscribeIndexPrices, ) -> Result<(), Error>

Unsubscribes from index price updates for the specified instrument. Read more
§

fn unsubscribe_funding_rates( &mut self, cmd: &UnsubscribeFundingRates, ) -> Result<(), Error>

Unsubscribes from funding rate updates for the specified instrument. Read more
§

fn unsubscribe_instrument_status( &mut self, cmd: &UnsubscribeInstrumentStatus, ) -> Result<(), Error>

Unsubscribes from instrument status updates for the specified instrument. Read more
§

fn unsubscribe_instrument_close( &mut self, cmd: &UnsubscribeInstrumentClose, ) -> Result<(), Error>

Unsubscribes from instrument close events for the specified instrument. Read more
§

fn unsubscribe_option_greeks( &mut self, cmd: &UnsubscribeOptionGreeks, ) -> Result<(), Error>

Unsubscribes from exchange-provided option greeks for the specified instrument. Read more
§

fn unsubscribe_blocks(&mut self, cmd: &UnsubscribeBlocks) -> Result<(), Error>

Unsubscribes from blocks for a specified blockchain. Read more
§

fn unsubscribe_pool(&mut self, cmd: &UnsubscribePool) -> Result<(), Error>

Unsubscribes from pool definition updates for a specified AMM pool. Read more
§

fn unsubscribe_pool_swaps( &mut self, cmd: &UnsubscribePoolSwaps, ) -> Result<(), Error>

Unsubscribes from swaps for a specified AMM pool. Read more
§

fn unsubscribe_pool_liquidity_updates( &mut self, cmd: &UnsubscribePoolLiquidityUpdates, ) -> Result<(), Error>

Unsubscribes from pool liquidity updates for a specified AMM pool. Read more
§

fn unsubscribe_pool_fee_collects( &mut self, cmd: &UnsubscribePoolFeeCollects, ) -> Result<(), Error>

Unsubscribes from pool fee collects for a specified AMM pool. Read more
§

fn unsubscribe_pool_flash_events( &mut self, cmd: &UnsubscribePoolFlashEvents, ) -> Result<(), Error>

Unsubscribes from pool flash loan events for a specified AMM pool. Read more
§

fn request_data(&self, request: RequestCustomData) -> Result<(), Error>

Sends a custom data request to the provider. Read more
§

fn request_funding_rates( &self, request: RequestFundingRates, ) -> Result<(), Error>

Requests historical or streaming funding rate data for a specified instrument. Read more
§

fn request_option_chain_reference_price( &self, request: RequestOptionChainReferencePrice, ) -> Result<(), Error>

Requests a reference price for an option-chain bootstrap. Read more
§

fn request_book_depth(&self, request: RequestBookDepth) -> Result<(), Error>

Requests historical order book depth data for a specified instrument. Read more
§

fn request_book_deltas(&self, request: RequestBookDeltas) -> Result<(), Error>

Requests historical order book delta data for a specified instrument. Read more
§

fn request_pool_snapshot( &self, request: RequestPoolSnapshot, ) -> Result<(), Error>

Requests a snapshot of a specific AMM pool. Read more
Source§

impl Debug for CoinApiDataClient

Source§

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

Formats the value using the given formatter. 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
§

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

§

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

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<T> PolicyExt for T
where T: ?Sized,

§

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
§

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
§

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

§

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
§

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
§

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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<T> Ungil for T
where T: Send,

§

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