kraken_ws_client 0.25.0

A strongly-typed client for the Kraken WebSocket API
Documentation
# 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 <https://spdx.org/licenses/Apache-2.0.html> for details.

## Copyright

Copyright © 2022 [Georgios Moschovitis](https://gmosx.ninja).