1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![doc = include_str!("../README.md")]
3#![deny(missing_docs, rustdoc::broken_intra_doc_links, clippy::missing_errors_doc)]
4
5pub mod errors;
6#[cfg(all(feature = "test-utils", feature = "tokio-comp"))]
7#[cfg_attr(docsrs, doc(cfg(feature = "test-utils")))]
8pub mod testing;
9pub mod models;
10pub mod rest;
11pub mod tls;
12pub mod urls;
13pub mod websocket;
14
15mod tracing_compat;
18
19mod metrics_compat;
24
25pub use errors::{ErrorKind, MarketDataError, WebSocketErrorKind};
27
28pub use tls::TlsConfig;
30
31pub use rest::{Auth, RestClient, RetryPolicy};
33
34pub use websocket::{
36 ConnectionConfig, ConnectionEvent, ConnectionState, DisconnectIntent, HealthCheckConfig,
37 MessageReceiver, ReconnectionConfig, WebSocketClient, WebSocketFactory,
38};
39
40pub use websocket::health_check::{
45 DEFAULT_HEALTH_CHECK_ENABLED, DEFAULT_HEARTBEAT_TIMEOUT_MS, MIN_HEARTBEAT_TIMEOUT_MS,
46};
47pub use websocket::reconnection::{
48 DEFAULT_INITIAL_DELAY_MS, DEFAULT_MAX_ATTEMPTS, DEFAULT_MAX_DELAY_MS, MIN_INITIAL_DELAY_MS,
49};
50
51pub use models::{
53 PriceLevel, ResponseMeta, TotalStats, TradeInfo, TradingHalt,
55 HistoricalCandle, HistoricalCandlesResponse, IntradayCandle, IntradayCandlesResponse,
57 Quote, Ticker, Trade, TradesResponse, VolumeAtPrice, VolumesResponse,
58 AuthRequest, Channel, Symbols, UnsubscribeRequest, WebSocketMessage, WebSocketRequest,
60};
61
62pub use models::streaming::{
64 AggregatesData, BooksData, CandleData, CandleHistoryItem, CandlesSnapshot, DataPayload,
65 ErrorData, IndicesData, SnapshotPayload, StreamMessage, StreamTrade, SubscribedData,
66 TradesData,
67};
68
69pub use websocket::channels::{parse_channel_data, parse_stream_message, ChannelData};
71pub use websocket::StockSubscription;
72
73pub use models::futopt::{
75 ContractType, FutOptChannel, FutOptLastTrade, FutOptPriceLevel, FutOptQuote, FutOptSession,
76 FutOptTicker, FutOptTotalStats, FutOptType, OptionRight, Product, ProductsResponse,
77};
78pub use websocket::channels::FutOptSubscription;
79
80#[cfg(feature = "tokio-comp")]
82#[cfg_attr(docsrs, doc(cfg(feature = "tokio-comp")))]
83pub use websocket::aio;
84#[cfg(feature = "tokio-comp")]
85#[cfg_attr(docsrs, doc(cfg(feature = "tokio-comp")))]
86pub use websocket::aio::AsyncRuntime;
87
88