maxt is a typed async API for market data, accounts, orders, and streams on
Upbit, Bithumb, Binance, and Hyperliquid.
maxt is designed for applications that work with multiple exchanges. Switching
exchanges or languages should not mean learning another SDK.
- Use common operations with the same API shape, models, errors, and stream contract across exchanges and supported languages.
- Access common operations through
Clientand exchange-specific capabilities through typed adapters. - Generate language-native public APIs and contracts from one schema, then verify them against the compiled native API.
Rust 1.85 or newer is required.
[dependencies]
maxt = "0.1"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }use maxt::adapters::BinanceAdapter;
use maxt::{Client, Exchange, Market};
#[tokio::main]
async fn main() -> maxt::Result<()> {
let client = Client::new(BinanceAdapter::spot());
let market = Market::spot(Exchange::Binance, "BTC", "USDT");
let ticker = client.ticker(&market).await?;
let filters = client.adapter().spot_symbol_filters(&market).await?;
println!("{}", ticker.last_price);
println!("{:?}", filters.tick_size);
Ok(())
}ticker() is common. spot_symbol_filters() is Binance Spot-specific and is
available through Client::adapter().
Run the public REST example:
cargo run --example public_rest- Rust
- Python
- Dart / Flutter native and Web
- TypeScript / Node.js
- TypeScript / Browser WebAssembly
- Getting started
- Common API
- Provider support
- Rust API:
cargo doc --open - Python
- Dart / Flutter
- TypeScript
- Browser relay
- Examples
- Changelog
- Contributing
MIT. See LICENSE.