Skip to main content

Crate binance_api_client

Crate binance_api_client 

Source
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.