13 个版本 (8 个破坏性更新)

0.10.0 2021 年 3 月 26 日
0.8.0 2020 年 2 月 8 日
0.7.2 2020 年 1 月 30 日
0.4.0 2019 年 12 月 31 日

#6#coinbase

MIT 许可协议

94KB
1.5K SLoC

Coinbase Pro 库客户端

仅支持异步

文档

用法

在您的 Cargo.toml 中添加此内容

[dependencies]
cbpro = "0.10.0"
futures = "0.3.4"
serde_json = "^1.0.47"
tokio = { version = "^1.2.0", features = ["macros", "time"] }

异步客户端

use cbpro::client::{PublicClient, SANDBOX_URL};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = PublicClient::new(SANDBOX_URL);
    let products = client.get_products().json::<serde_json::Value>().await?;
    println!("{}", serde_json::to_string_pretty(&products).unwrap());
    Ok(())
}

异步分页

use cbpro::client::{PublicClient, SANDBOX_URL};
use futures::TryStreamExt;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = PublicClient::new(SANDBOX_URL);
    let mut pages = client.get_trades("BTC-USD").paginate::<serde_json::Value>()?;

    while let Some(json) = pages.try_next().await? {
        println!("{}", serde_json::to_string_pretty(&json).unwrap());
        tokio::time::sleep(core::time::Duration::new(1, 0)).await;
    }
    Ok(())
}

异步 WebSocket

use cbpro::websocket::{Channels, WebSocketFeed, SANDBOX_FEED_URL};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut feed = WebSocketFeed::connect(SANDBOX_FEED_URL).await?;
    feed.subscribe(&["BTC-USD"], &[Channels::LEVEL2]).await?;

    while let Some(value) = feed.json::<serde_json::Value>().await? {
        println!("{}", serde_json::to_string_pretty(&value).unwrap());
    }
    Ok(())
}

端点

  • 私有
    • 身份验证
    • 账户
    • 订单
    • 填充
    • 存款
    • 取款
    • 支付方式
    • Coinbase 账户
    • 报告
    • 用户账户
  • 市场数据
    • 产品
    • 货币
    • 时间
  • WebSocket 推送
    • 心跳
    • 行情
    • 深度
    • 用户
    • 匹配
    • 全部

FIX API

按请求提供

许可协议

许可下

依赖项

~8–22MB
~356K SLoC