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
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
按请求提供
许可协议
许可下
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
依赖项
~8–22MB
~356K SLoC