Crate kraken_sdk

Crate kraken_sdk 

Source
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
OrderbookSnapshot
Immutable snapshot of orderbook state
ReconnectConfig
Configuration for automatic reconnection with exponential backoff
Symbol
Trading pair symbol (BTC/USD format - V2 API uses BTC, not XBT!)
TradingClient
Trading client for WebSocket order management

Enums§

Channel
WebSocket channel types
ConnectionEvent
Connection lifecycle events
ConnectionState
WebSocket connection state
Depth
Orderbook depth levels
Endpoint
Kraken WebSocket API v2 endpoints
Event
Combined event type for event streams
KrakenError
Main error type for Havklo SDK operations
L3Event
Level 3 orderbook events
MarketEvent
Market data events
OrderbookState
Orderbook synchronization state
PrivateEvent
Private channel events (requires authentication)
Side
Trade side
SubscriptionEvent
Subscription-specific events