Expand description
High-level SDK for Kraken WebSocket API v2
This crate provides an ergonomic, high-level API for connecting to Kraken’s real-time market data feeds. It handles connection management, automatic reconnection, and orderbook state maintenance.
§Quick Start
use kraken_sdk::prelude::*;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Connect to Kraken
let mut client = KrakenClient::builder(["BTC/USD", "ETH/USD"])
.with_depth(Depth::D10)
.connect()
.await?;
// Get market data
if let Some(spread) = client.spread("BTC/USD") {
println!("BTC/USD spread: {}", spread);
}
// Process events
let mut events = client.events().unwrap();
while let Some(event) = events.recv().await {
match event {
Event::Market(MarketEvent::OrderbookUpdate { symbol, snapshot }) => {
println!("{}: mid = {:?}", symbol, snapshot.mid_price());
}
_ => {}
}
}
Ok(())
}§Features
- Simple API: Builder pattern for configuration
- Automatic Reconnection: Exponential backoff with jitter
- Orderbook Management: State tracking with checksum validation
- Event-Driven: Async event stream for all updates
- Type-Safe: Full type safety with Rust’s type system
Re-exports§
pub use builder::KrakenClientBuilder;pub use client::KrakenClient;
Modules§
- builder
- Client Builder Pattern
- client
- High-level Kraken client
- filter
- Event Filtering System
- market
- Unified market state manager
- prelude
- Re-exports for convenience
Structs§
- L3Book
- L3 orderbook with individual order tracking
- Level
- A single price level in the orderbook
- Orderbook
- Managed orderbook with state tracking and checksum validation
- Orderbook
Snapshot - Immutable snapshot of orderbook state
- Reconnect
Config - Configuration for automatic reconnection with exponential backoff
- Symbol
- Trading pair symbol (BTC/USD format - V2 API uses BTC, not XBT!)
- Trading
Client - Trading client for WebSocket order management
Enums§
- Channel
- WebSocket channel types
- Connection
Event - Connection lifecycle events
- Connection
State - WebSocket connection state
- Depth
- Orderbook depth levels
- Endpoint
- Kraken WebSocket API v2 endpoints
- Event
- Combined event type for event streams
- Kraken
Error - Main error type for Havklo SDK operations
- L3Event
- Level 3 orderbook events
- Market
Event - Market data events
- Orderbook
State - Orderbook synchronization state
- Private
Event - Private channel events (requires authentication)
- Side
- Trade side
- Subscription
Event - Subscription-specific events