3 releases
0.1.9 | May 9, 2022 |
---|---|
0.1.8 | Apr 27, 2022 |
0.1.0 | Apr 26, 2022 |
#37 in #user-defined
225KB
6K
SLoC
ecbt(Exchange Connect Base Tool)
High performance cryptocurrency trading API with support for user defined networking.
- Based on Rust, memory safe by default.
- Support for websockets and user defined networking.
- Easy to add support for additional exchanges.
License
Usage
Add dependencies in 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));
}
Contributions
Because there are many exchanges, if ecbt has not been implemented, you may need to implement it yourself.
Contact Us
Contact or join us @oss-jtyd.
WIP
- [done] Project Skeleton
- [done] Binance support
- [todo] Nash support
- [todo] Huobi support
- [todo] Coinbase support
- [todo] Apifiny support
- [todo] Okex support
Dependencies
~14–30MB
~460K SLoC