crypto_exc_all
统一加密货币交易所 SDK facade。外部业务只依赖 crypto_exc_all,由根 crate 自动加载不同交易所的 API key,并在内部转成对应的 okx_rs / binance_rs client。
发布结构
本项目按三层发布:
okx_rs: OKX 交易所 SDK crate。binance_rs: Binance USDⓈ-M Futures SDK crate。crypto_exc_all: 统一入口 crate,通过版本依赖引用各交易所 SDK。
本地开发使用 path + version 依赖;发布时先发布 okx_rs、binance_rs,再发布 crypto_exc_all。
[]
= "0.1"
当前根 crate 的默认 feature 会启用 OKX 和 Binance:
= { = "0.1", = true }
只启用 Binance:
= { = "0.1", = false, = ["binance"] }
环境变量
OKX:
OKX_API_KEY=...
OKX_API_SECRET=...
OKX_PASSPHRASE=...
OKX_SIMULATED_TRADING=1
也支持 OKX 模拟盘变量:
OKX_SIMULATED_API_KEY=...
OKX_SIMULATED_API_SECRET=...
OKX_SIMULATED_PASSPHRASE=...
Binance:
BINANCE_API_KEY=...
BINANCE_API_SECRET=...
BINANCE_PROXY_URL=socks5h://127.0.0.1:7897
BINANCE_PROXY_URL 可省略;如果传入 socks5://,SDK 会自动规范化成 socks5h://。
统一调用
use ;
async
遍历所有已配置交易所:
use ;
async
运行示例:
当前统一能力
- 自动读取 OKX / Binance 凭证。
CryptoSdk::from_env()/CryptoSdk::from_config()。sdk.configured_exchanges()。- 统一
Instrument,自动映射交易所 symbol:- Binance 永续:
BTCUSDT - OKX 永续:
BTC-USDT-SWAP
- Binance 永续:
- 统一 market ticker:
sdk.market(exchange)?.ticker(&instrument).await
- 统一 account balances:
sdk.account(exchange)?.balances().await
- 统一错误入口
crypto_exc_all::Error。 raw逃生口:crypto_exc_all::raw::okxcrypto_exc_all::raw::binance
测试
根 crate 包含一个外部调用场景集成测试:测试代码只引入 crypto_exc_all,通过 mock HTTP 同时调用 OKX 和 Binance 的统一 ticker 接口。