rusty_ems/exchanges/coinbase/mod.rs
1//! Coinbase exchange integration for the rusty-ems system.
2//!
3//! This module provides comprehensive integration with the Coinbase Advanced Trading API,
4//! including WebSocket trading, REST API client, and zero-allocation optimizations.
5//!
6//! # Key Components
7//!
8//! - **WebSocket Trading**: Real-time order management and market data streaming
9//! - **REST Client**: HTTP-based API interactions for orders and account data
10//! - **Unified Client**: Combined interface for both WebSocket and REST operations
11//! - **Zero-Allocation**: High-performance, memory-efficient data structures
12//! - **Models**: Data structures for Coinbase API responses and requests
13//!
14//! # Authentication
15//!
16//! All clients support Coinbase Advanced Trading API authentication using
17//! API keys, secrets, and passphrase-based signing.
18//!
19//! # Performance Optimizations
20//!
21//! The module includes several performance optimizations:
22//! - Zero-copy parsing for market data
23//! - SmallString usage for reduced allocations
24//! - SIMD-optimized JSON parsing via simd-json
25//! - Lock-free data structures where applicable
26
27pub mod models;
28pub mod rest_client;
29pub mod unified_client;
30pub mod websocket_trading;
31pub mod zero_alloc_coinbase;
32// TODO: Re-enable after adding rustls dependencies
33// pub mod fix_client;
34
35// Re-export websocket trading types
36pub use rest_client::{CoinbaseOrderRequest, CoinbaseRestClient};
37pub use unified_client::{CoinbaseProtocol, CoinbaseUnifiedClient, UnifiedClientConfig};
38pub use websocket_trading::CoinbaseWebsocketTrading as CoinbaseWebSocketTrader;