#rest #cryptocurrency #async #kraken #async-api #api-bindings #api

calamari

为 Kraken 加密货币交易所提供的最小化、优雅且异步 REST API 客户端

1 个不稳定版本

0.1.0 2021 年 5 月 22 日

#27#kraken

Download history 42/week @ 2024-03-30 16/week @ 2024-04-06 8/week @ 2024-04-13 16/week @ 2024-04-20 3/week @ 2024-04-27 7/week @ 2024-05-04 23/week @ 2024-05-11 25/week @ 2024-05-18 83/week @ 2024-05-25 164/week @ 2024-06-01 186/week @ 2024-06-08 135/week @ 2024-06-15 64/week @ 2024-06-22 58/week @ 2024-06-29 39/week @ 2024-07-06 36/week @ 2024-07-13

218 每月下载量

ISC 许可证

38KB
483

calamari logo

Calamari

为 Kraken 提供的最小化、优雅异步 REST API 客户端

Build Code Coverage Downloads (all time) ISC License

Calamari 是 Kraken 的 REST API 客户端。

快速入门

API 客户端提供两种形式:PublicApiClientPrivateApiClient。前者仅具有公共方法的访问权限,后者具有所有端点的访问权限。这是在编译时强制执行的,因为所有端点都在 PublicEndpointsPrivateEndpoints 特性中静态定义的。

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());
}

每个端点接受零个或一个参数,该参数包含所有请求参数的 urlencode 格式。所有端点都返回包含服务器 JSON 响应的 String,用户可以完全自由地处理它。

可以通过直接实例化或使用 set_credentials 方法提供 API 凭证从现有的 PublicApiClient 创建 PrivateApiClient

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());
}
Logo 由 Freepikwww.flaticon.com 制作

依赖项

~3–15MB
~219K SLoC