Crate tokio_binance[−][src]
Unofficial async client for Binance.
Simple and easy to use wrapper for the Binance API.
Examples
Client
use tokio_binance::{AccountClient, BINANCE_US_URL, ID}; use serde_json::Value; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let client = AccountClient::connect("<api-key>", "<secret-key>", BINANCE_US_URL)?; let response = client .get_order("BNBUSDT", ID::ClientOId("<uuid>")) // optional: processing time for request; default is 5000, can't be above 60000. .with_recv_window(8000) // .json::<Value>() .await?; Ok(()) }
Websocket
use tokio_binance::*; use tokio::time::Duration; use serde_json::Value; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let client = UserDataClient::connect("<api-key>", BINANCE_US_URL)?; let value = client.start_stream().json::<Value>().await?; let listen_key = value["listenKey"].as_str().unwrap(); let listen_key_copy = listen_key.to_string(); tokio::spawn(async move { loop { std::thread::sleep(Duration::from_secs(30*60)); if let Err(e) = client.keep_alive(&listen_key_copy).text().await { eprintln!("{}", e); return } } }); let channel = Channel::UserData(listen_key); let mut stream = WebSocketStream::connect(channel, BINANCE_US_WSS_URL).await?; while let Some(value) = stream.json::<Value>().await? { if channel == value["stream"] { println!("{}", serde_json::to_string_pretty(&value)?); } } Ok(()) }
Modules
builder | |
error | |
types |
Structs
AccountClient | Client for dealing with orders |
GeneralClient | Client for dealing with general exchange information |
MarketDataClient | Client for dealing with market data. |
UserDataClient | Client for dealing with the user data stream. |
WebSocketStream | Websocket stream for the various binance channels aka streams. |
WithdrawalClient | Client for dealing with withdrawals and sub accounts. |
Enums
Channel | |
ID | |
Interval | |
Level | |
OrderRespType | |
Side | |
Speed | |
TimeInForce |
Constants
BINANCE_US_URL | https://api.binance.us |
BINANCE_US_WSS_URL | wss://stream.binance.us:9443 |