# Kraken WebSocket API Client A strongly-typed Rust SDK for the [Kraken WebSocket API](https://docs.kraken.com/websockets-v2). This crate is an _unofficial_, community-driven effort. ## Installation ```toml [dependencies] kraken_ws_client = "0.24" ``` ## Usage ```rs use futures::StreamExt; use kraken_ws_client::api::SubscribeTickerRequest; #[tokio::main] async fn main() { let mut client = kraken_ws_client::connect_public() .await .expect("cannot connect"); client .send(SubscribeTickerRequest::symbol("BTC/USD")) .await .expect("cannot send request"); while let Some(event) = client.ticker_events().next().await { dbg!(&event); } } ``` ```rs use kraken_rest_client::Client as RestClient; let api_key = std::env::var("KRAKEN_API_KEY").expect("api key not defined"); let api_secret = std::env::var("KRAKEN_API_SECRET").expect("api secret not defined"); let rest_client = RestClient::new(api_key, api_secret); let resp = rest_client.get_web_sockets_token().send().await?; let token = resp.token; let mut ws_private_client = kraken_ws_client::connect_private(token) .await .expect("cannot connect"); ws_private_client .send(SubscribeExecutionsRequest::new()) .await .expect("cannot send request"); while let Ok(msg) = ws_private_client.messages().recv().await { dbg!(msg); } ``` or run the example: ```rs cargo run --example ticker ``` ## Status The software is under active development and the API is expected to change. ## Contributing Pull requests, issues and comments are welcome! Make sure to add tests for new features and bug fixes. ## License This work is licensed under the Apache-2.0 License. See [LICENSE.txt](LICENSE.txt) or for details. ## Copyright Copyright © 2022 [Georgios Moschovitis](https://gmosx.ninja).