3个版本
0.1.9 | 2022年5月9日 |
---|---|
0.1.8 | 2022年4月27日 |
0.1.0 | 2022年4月26日 |
#35 in #user-defined
225KB
6K SLoC
ecbt(交易所连接基础工具)
支持用户定义网络的性能高加密货币交易API。
- 基于Rust,默认内存安全。
- 支持Websocket和用户定义网络。
- 易于添加对其他交易所的支持。
许可证
用法
在 Cargo.toml
中添加依赖项
[dependencies]
ecbt = "0.1"
ecbt-exchange = "0.1"
ecbt-binance = "0.1"
tokio = { version = "1", features = ["full"] }
HTTP
use std::borrow::Borrow;
use ecbt::{
prelude::{
market_pair::{Currency, MarketPair},
GetPriceTickerRequest,
},
Ecbt,
};
use ecbt_binance::{Binance, BinanceParameters};
use ecbt_exchange::ExchangeMarketData;
#[tokio::main]
async fn main() {
let ecbt = Ecbt::http::<Binance>(BinanceParameters::sandbox())
.await
.unwrap();
let request = GetPriceTickerRequest {
market_pair: MarketPair(Currency::ETH, Currency::USDT),
};
let s = ecbt.get_price_ticker(request.borrow()).await.unwrap();
println!("{:?}", s);
}
WebSocket
use ecbt::{
prelude::{
market_pair::{Currency, MarketPair},
websocket::{EcbtWebSocketMessage, Subscription, WebSocketResponse},
ExchangeStream,
},
Ecbt,
};
use ecbt_binance::{BinanceParameters, BinanceWebsocket};
#[tokio::main]
async fn main() {
let ecbt = Ecbt::ws::<BinanceWebsocket>(BinanceParameters::sandbox())
.await
.unwrap();
let market = MarketPair(Currency::ETH, Currency::BTC);
ecbt.subscribe(Subscription::OrderBookUpdates(market), move |m| {
let r = m.as_ref();
if let Ok(WebSocketResponse::Generic(EcbtWebSocketMessage::OrderBook(order_book))) = r {
println!("{:?}", order_book)
} else if let Err(err) = r {
println!("{:#?}", err);
}
})
.await
.expect("Failed to subscribe to orderbook on Binance");
std::thread::sleep(std::time::Duration::from_millis(5000));
}
贡献
由于有很多交易所,如果ecbt尚未实现,您可能需要自行实现。
联系我们
联系或加入我们 @oss-jtyd。
进行中
- [完成] 项目框架
- [完成] Binance支持
- [待办] Nash支持
- [待办] Huobi支持
- [待办] Coinbase支持
- [待办] Apifiny支持
- [待办] Okex支持
依赖项
~13–29MB
~469K SLoC