Expand description
aeon-market-scanner-rs
Fetch spot prices from multiple CEX/DEX venues and scan for arbitrage opportunities.
§Quickstart (REST)
use aeon_market_scanner_rs::{Binance, CEXTrait};
let price = Binance::new().get_price("BTCUSDT").await?;
println!("{} bid={} ask={}", price.symbol, price.bid_price, price.ask_price);§Quickstart (WebSocket stream)
use aeon_market_scanner_rs::{Binance, CEXTrait};
let mut rx = Binance::new()
.stream_price_websocket(&["BTCUSDT", "ETHUSDT"], 10, 5000)
.await?;
while let Some(update) = rx.recv().await {
println!("[{:?}] {} bid={} ask={}", update.exchange, update.symbol, update.bid_price, update.ask_price);
}Re-exports§
pub use cex::Binance;pub use cex::Bitfinex;pub use cex::Bitget;pub use cex::Btcturk;pub use cex::Bybit;pub use cex::Coinbase;pub use cex::Cryptocom;pub use cex::Gateio;pub use cex::Htx;pub use cex::Kraken;pub use cex::Kucoin;pub use cex::Mexc;pub use cex::OKX;pub use cex::Upbit;pub use common::AggregatorPrice;pub use common::AggregatorRouteSummary;pub use common::AmountSide;pub use common::CEXTrait;pub use common::CexExchange;pub use common::CexPrice;pub use common::DEXTrait;pub use common::DexAggregator;pub use common::Exchange;pub use common::ExchangeTrait;pub use common::FeeOverrides;pub use common::MarketScannerError;pub use common::effective_price;pub use common::effective_price_with_overrides;pub use common::fee_rate;pub use common::fee_rate_with_overrides;pub use common::taker_fee_rate;pub use common::taker_fee_rate_with_overrides;pub use dex::ChainId;pub use dex::DexPrice;pub use dex::KyberSwap;pub use dex::PoolKind;pub use dex::PoolListenerConfig;pub use dex::PoolWithTokens;pub use dex::PriceDirection;pub use dex::Token;pub use dex::stream_pool_prices;pub use scanner::ArbitrageOpportunity;pub use scanner::ArbitrageScanner;pub use scanner::PriceData;