#exchange #cryptocurrency #kraken #api-client #api #api-bindings #rust

polipo

🐙 最小化、优雅、快速、异步 Kraken 交易所 REST API 客户端 | 用 Rust 编写

16 个版本

0.2.5 2021年2月24日
0.2.4 2021年2月23日
0.1.9 2021年2月21日

#19 in #kraken


用于 2 个软件包 (通过 squalo)

MIT 许可证

97KB
202

polipo

🐙 最小化、优雅、快速、异步 Kraken 交易所 REST API 客户端 | 用 Rust 编写

描述

polipo 库旨在使您的软件能够快速与 Kraken 交易所 REST API 进行交互。

先决条件

Kraken 交易所允许通过 REST APIpublicprivate 数据进行交互。

对于 private 数据,您需要向 polipo 库颁发一个 API-Key 和一个 API-Secret,以便 生成带有签名的请求的认证字符串

如果您不熟悉,请参阅 API 基础文档 以获取概述,或参阅 生成 API 密钥 文档。

实现

将以下内容添加到您的 Cargo.toml

[dependencies]
polipo = {version = 0.2.5}

然后将其添加到您的 code

use polipo;

方法

polipo::print_crate_info();

描述:打印 crate 信息(名称、描述、版本、作者和存储库)。

polipo::set_kraken_api_credentials(api_key: String, api_secret: String);

描述:为 Kraken API 证书设置用于 private 数据访问。

必需:

  • api_keyString
  • api_secretString
polipo::get_kraken_api_response(method: String, url_encoded_body: String).await;

描述:根据指定的 methodurl_encoded_body 数据执行 publicprivate 请求。

必需:

  • methodString(例如:"public""private"
  • url_encoded_body: 字符串(例如:"pair=ethusd&since=1574067140000000000"

输出:任何响应都以字符串化的 JSON 格式呈现(根据结果形状相应解析)。

示例

以下示例展示了如何从零开始轻松实现 polipo

use polipo;

async fn query(method: &str, url_encoded_body: &str) -> String {
    polipo::get_kraken_api_response(method.to_string(), url_encoded_body.to_string()).await
}

#[tokio::main]
async fn main() {
    
    // printing crate information
    polipo::print_crate_info();

    // performing some queries on public data
    println!("public/Assets: {}", query("Assets", "").await);
    println!("public/Ticker: {}", query("Ticker", "pair=xdgeur").await);

    // issuing credentials enables private data requests
    polipo::set_kraken_api_credentials(
        "YOUR_KRAKEN_API_KEY_HERE".to_string(),
        "YOUR_KRAKEN_API_SECRET".to_string(),
    );

    // performing some queries on private data
    println!("private/Balance: {}", query("Balance", "").await);
    println!("private/TradeBalance: {}", query("TradeBalance","asset=ada").await);
    println!("private/Trades: {}", query("Trades", "pair=ethusd&since=1574067140000000000").await);
}

免责声明

本软件不提供任何形式的担保。

对于与本软件的使用或误用相关的任何损害,本人不承担任何责任。

您是唯一的责任方。

依赖项

约6-18MB
约258K SLoC