Crates.io | ecbt |
lib.rs | ecbt |
version | 0.1.9 |
source | src |
created_at | 2022-04-26 09:59:10.611588 |
updated_at | 2022-05-09 07:41:46.816912 |
description | High performance cryptocurrency trading API with support for user defined networking. |
homepage | |
repository | https://github.com/wmjtyd/ecbt |
max_upload_size | |
id | 575255 |
size | 59,812 |
High performance cryptocurrency trading API with support for user defined networking.
Add dependencies in Cargo.toml
:
[dependencies]
ecbt = "0.1"
ecbt-exchange = "0.1"
ecbt-binance = "0.1"
tokio = { version = "1", features = ["full"] }
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);
}
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));
}
Because there are many exchanges, if ecbt has not been implemented, you may need to implement it yourself.
Contact or join us @oss-jtyd.