Expand description
Async Rust client for the Binance API.
This library provides a type-safe, async interface to the Binance cryptocurrency exchange API, supporting both REST and WebSocket endpoints.
§Features
- Full coverage of Binance Spot REST API
- WebSocket support for real-time market data streams
- User data stream support for account updates
- Automatic request signing for authenticated endpoints
- Production and testnet environment support
- Binance.US support
§Quick Start
§Public API (No Authentication Required)
ⓘ
use binance_api_client::Binance;
#[tokio::main]
async fn main() -> binance_api_client::Result<()> {
// Create a client for public endpoints
let client = Binance::new_unauthenticated()?;
// Ping the server
client.market().ping().await?;
// Get server time
let time = client.market().server_time().await?;
println!("Server time: {}", time.server_time);
Ok(())
}§Authenticated API
ⓘ
use binance_api_client::Binance;
#[tokio::main]
async fn main() -> binance_api_client::Result<()> {
// Create an authenticated client
let client = Binance::new("your_api_key", "your_secret_key")?;
// Access account information
let account = client.account().get_account().await?;
println!("Account balances: {:?}", account.balances);
Ok(())
}§Using Testnet
ⓘ
use binance_api_client::{Binance, Config};
#[tokio::main]
async fn main() -> binance_api_client::Result<()> {
let config = Config::testnet();
let client = Binance::with_config(config, Some(("api_key", "secret_key")))?;
// Now all requests go to testnet
client.market().ping().await?;
Ok(())
}Re-exports§
pub use client::Client;pub use config::Config;pub use config::ConfigBuilder;pub use credentials::Credentials;pub use credentials::SignatureType;pub use error::Error;pub use error::Result;pub use websocket::ConnectionHealthMonitor;pub use websocket::ConnectionState;pub use websocket::DepthCache;pub use websocket::DepthCacheConfig;pub use websocket::DepthCacheManager;pub use websocket::DepthCacheState;pub use websocket::ReconnectConfig;pub use websocket::ReconnectingWebSocket;pub use websocket::UserDataStreamManager;pub use websocket::WebSocketClient;pub use websocket::WebSocketConnection;pub use websocket::WebSocketEventStream;pub use types::AccountType;pub use types::CancelReplaceMode;pub use types::CancelReplaceResult;pub use types::CancelRestrictions;pub use types::ContingencyType;pub use types::ExecutionType;pub use types::KlineInterval;pub use types::OcoOrderStatus;pub use types::OcoStatus;pub use types::OrderRateLimitExceededMode;pub use types::OrderResponseType;pub use types::OrderSide;pub use types::OrderStatus;pub use types::OrderType;pub use types::RateLimitInterval;pub use types::RateLimitType;pub use types::SymbolPermission;pub use types::SymbolStatus;pub use types::TickerType;pub use types::TimeInForce;pub use models::AccountCommission;pub use models::AccountInfo;pub use models::AccountSnapshot;pub use models::AccountSnapshotType;pub use models::AccountStatus;pub use models::AggTrade;pub use models::Allocation;pub use models::AmendListStatus;pub use models::AmendOrderResponse;pub use models::AmendedOrderInfo;pub use models::ApiKeyPermissions;pub use models::ApiTradingStatus;pub use models::AssetDetail;pub use models::AveragePrice;pub use models::Balance;pub use models::BnbBurnStatus;pub use models::BookTicker;pub use models::CancelOrderResponse;pub use models::CancelReplaceErrorData;pub use models::CancelReplaceErrorInfo;pub use models::CancelReplaceErrorResponse;pub use models::CancelReplaceResponse;pub use models::CancelReplaceSideResponse;pub use models::CoinInfo;pub use models::CoinNetwork;pub use models::DepositAddress;pub use models::DepositRecord;pub use models::DepositStatus;pub use models::ExchangeInfo;pub use models::Fill;pub use models::FundingAsset;pub use models::InterestHistoryRecord;pub use models::InterestRateRecord;pub use models::IsolatedAccountLimit;pub use models::IsolatedAssetDetails;pub use models::IsolatedMarginAccountAsset;pub use models::IsolatedMarginAccountDetails;pub use models::IsolatedMarginTransferType;pub use models::Kline;pub use models::ListenKey;pub use models::LoanRecord;pub use models::MarginAccountDetails;pub use models::MarginAsset;pub use models::MarginAssetInfo;pub use models::MarginOrderCancellation;pub use models::MarginOrderResult;pub use models::MarginOrderState;pub use models::MarginPairDetails;pub use models::MarginPriceIndex;pub use models::MarginTrade;pub use models::MarginTransferType;pub use models::MaxBorrowableAmount;pub use models::MaxTransferableAmount;pub use models::OcoOrder;pub use models::OcoOrderDetail;pub use models::OcoOrderReport;pub use models::Order;pub use models::OrderAck;pub use models::OrderAmendment;pub use models::OrderBook;pub use models::OrderBookEntry;pub use models::OrderFull;pub use models::OrderResponse;pub use models::OrderResult;pub use models::PreventedMatch;pub use models::RateLimit;pub use models::RecordsQueryResult;pub use models::RepayRecord;pub use models::RollingWindowTicker;pub use models::RollingWindowTickerMini;pub use models::ServerTime;pub use models::SideEffectType;pub use models::SorOrderCommissionRates;pub use models::SorOrderTestResponse;pub use models::Symbol;pub use models::SymbolFilter;pub use models::SystemStatus;pub use models::Ticker24h;pub use models::TickerPrice;pub use models::Trade;pub use models::TradeFee;pub use models::TradingDayTicker;pub use models::TradingDayTickerMini;pub use models::TransactionId;pub use models::TransferHistory;pub use models::TransferRecord;pub use models::TransferResponse;pub use models::UnfilledOrderCount;pub use models::UniversalTransferType;pub use models::UserTrade;pub use models::WalletBalance;pub use models::WithdrawRecord;pub use models::WithdrawResponse;pub use models::WithdrawStatus;pub use models::websocket::AccountBalance;pub use models::websocket::AccountPositionEvent;pub use models::websocket::AggTradeEvent;pub use models::websocket::BalanceUpdateEvent;pub use models::websocket::BookTickerEvent;pub use models::websocket::DepthEvent;pub use models::websocket::DepthLevel;pub use models::websocket::ExecutionReportEvent;pub use models::websocket::KlineData;pub use models::websocket::KlineEvent;pub use models::websocket::ListStatusEvent;pub use models::websocket::ListStatusOrder;pub use models::websocket::MiniTickerEvent;pub use models::websocket::TickerEvent;pub use models::websocket::TradeEvent;pub use models::websocket::WebSocketEvent;pub use api::CancelReplaceOrder;pub use api::CancelReplaceOrderBuilder;pub use api::NewOcoOrder;pub use api::NewOpoOrder;pub use api::NewOpocoOrder;pub use api::NewOrder;pub use api::NewOtoOrder;pub use api::NewOtocoOrder;pub use api::OcoOrderBuilder;pub use api::OpoOrderBuilder;pub use api::OpocoOrderBuilder;pub use api::OrderBuilder;pub use api::OtoOrderBuilder;pub use api::OtocoOrderBuilder;
Modules§
- api
- API endpoint implementations.
- client
- config
- credentials
- error
- models
- API response models for the Binance API.
- types
- Common types used across the Binance API.
- websocket
- WebSocket client for real-time market data streaming.
Structs§
- Binance
- Main entry point for the Binance API client.