maxt 0.2.1

One Rust API for Upbit, Bithumb, Binance, and Hyperliquid market data, accounts, and orders.
Documentation
# maxt

[English]README.md | [한국어]README.ko.md

Upbit, Bithumb, Binance, Hyperliquid의 시장 데이터, 계좌, 주문, 스트림을
제공하는 타입 기반 비동기 API입니다.

## 만든 이유

`maxt`는 여러 거래소를 함께 사용하는 애플리케이션을 위해 만들었습니다. 거래소나
언어를 바꿀 때마다 새로운 SDK 사용법을 익히지 않는 개발 경험을 지향합니다.

- 거래소와 지원 언어가 달라도 공통 기능은 같은 API 구조, 모델, 오류, 스트림 계약으로 사용합니다.
- 공통 기능은 `Client`, 거래소 전용 기능은 타입이 명확한 어댑터를 통해 제공합니다.
- 하나의 스키마에서 각 언어의 공개 API와 계약을 생성하고, 컴파일된 네이티브 API와의 정합성을 검사합니다.

## 설치

Rust 1.85 이상이 필요합니다.

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

## Binance 예제

```rust,no_run
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()`는 공통 API입니다. `spot_symbol_filters()`는 Binance Spot 전용이며
`Client::adapter()`를 통해 호출합니다.

공개 REST 예제 실행:

```sh
cargo run --example public_rest
```

## 지원 상태

- [x] Rust
- [x] Python
- [x] Dart / Flutter 네이티브 및 Web
- [x] TypeScript / Node.js
- [x] TypeScript / Browser WebAssembly

## 문서

- [시작하기]docs/getting-started.ko.md
- [공통 API]docs/common-api.ko.md
- [거래소 지원]docs/providers.ko.md
- Rust API: `cargo doc --open`
- [Python]bindings/python/README.ko.md
- [Dart / Flutter]bindings/dart/README.ko.md
- [TypeScript]bindings/typescript/README.ko.md
- [브라우저 릴레이]relay/README.ko.md
- [예제]examples/
- [변경 기록]CHANGELOG.md
- [기여 가이드]CONTRIBUTING.ko.md

## 라이선스

MIT. [LICENSE](LICENSE)를 참고하세요.