Skip to content

Repository files navigation

maxt

English | 한국어

maxt is a typed async API for market data, accounts, orders, and streams on Upbit, Bithumb, Binance, and Hyperliquid.

Why maxt

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 Client and exchange-specific capabilities through typed adapters.
  • Generate language-native public APIs and contracts from one schema, then verify them against the compiled native API.

Install

Rust 1.85 or newer is required.

[dependencies]
maxt = "0.1"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }

Binance example

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

Support

  • Rust
  • Python
  • Dart / Flutter native and Web
  • TypeScript / Node.js
  • TypeScript / Browser WebAssembly

Documentation

License

MIT. See LICENSE.

About

Multi-Asset eXchange Toolkit

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages