Thanks to visit codestin.com
Credit goes to github.com

Skip to content

rubik/calamari

Repository files navigation

calamari logo

Calamari

Minimal and elegant async REST API client for Kraken

Code Coverage Downloads (all time) ISC License

Calamari is a REST API client for Kraken.

Quickstart

The API client comes in two flavors: PublicApiClient and PrivateApiClient. The former has access to the public methods only, the latter to all endpoints. This is enforced at compile-time, as all the endpoints are defined statically in the traits PublicEndpoints and PrivateEndpoints.

use calamari::{PublicApiClient, PublicEndpoints};

// Note: to run this example you will need to add Tokio to your dependencies:
// tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] }

#[tokio::main]
async fn main() {
    let client = PublicApiClient::default();
    println!("Server time: {}", client.time().await.unwrap());
    println!("System status: {}", client.system_status().await.unwrap());
    println!("Ticker: {}", client.ticker("pair=XBTUSD".into()).await.unwrap());
}

Each endpoint accepts either zero arguments or a single argument containing all the request parameters in urlencode format. All endpoints return a String containing the JSON response from the server, leaving the user with complete freedom in how they want to handle it.

A PrivateApiClient can be instantiated directly, or created from an existing PublicApiClient by supplying the API credentials with the set_credentials method.

use calamari::{ApiCredentials, PrivateApiClient, PublicEndpoints, PrivateEndpoints};

#[tokio::main]
async fn main() {
    let credentials = ApiCredentials::new(
        "YOUR_API_KEY".into(),
        "YOUR_API_SECRET".into(),
    );
    let client = PrivateApiClient::default_with_credentials(credentials);
    // Alternatively, if `client` is already a `PublicApiClient`:
    // let client = client.set_credentials(credentials);

    println!("Server time: {}", client.time().await.unwrap());
    println!("System status: {}", client.system_status().await.unwrap());
    println!("Ticker: {}", client.ticker("pair=XBTUSD".into()).await.unwrap());

    println!("Account balance: {}", client.balance().await.unwrap());
    println!("Open orders: {}", client.open_orders("trades=true".into()).await.unwrap());
}

Documentation

The complete documentation is available on docs.rs.

Logo made by Freepik from www.flaticon.com

About

Minimal and elegant async REST API client for the Kraken cryptocurrency exchange.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •