A high-performance, real-time order book trading application built in Rust with a terminal-based UI.
- Real-time Order Book: Live bid/ask order management with price-time priority
- Multi-Exchange Support: Binance and Polymarket integration
- Advanced Trading: Limit, market, and stop-loss orders
- Technical Analysis: Candlestick charts with moving averages
- Price Alerts: Configurable price and volume alerts
- Multi-Coin Support: BTC, ETH, SOL with real-time switching
- Thread-Safe: Lock-free concurrent order processing
- Rust 1.70+
- Terminal with Unicode support
git clone <repository-url>
cd order-book
cargo build --release
cargo run --release
- Tabs:
Tab
/Shift+Tab
orLeft/Right
arrows - Quick Access:
1-7
keys for direct tab selection - Function Keys:
F2-F8
for instant tab switching
- Order Input:
P
orSpace
to activate - Order Side:
B
for Buy,S
for Sell - Order Type:
G
(GTC),F
(FOK),D
(GTD) - Submit:
Enter
to place orders
- Refresh:
R
to refresh order book - Sample Data:
A
to add sample orders - Real Data:
W
to toggle real/simulated data
- Switch:
N
(next),V
(previous) - Select:
1-3
for specific coins
- Timeframes:
<
/>
to cycle through (1m, 5m, 15m, 1h, 4h, 1d) - Auto-refresh:
L
to toggle automatic updates
# Command line alerts
alert above 27000 "BTC above 27k"
alert below 26000 "BTC below 26k"
alert change 5 "5% price change"
alert volume 1000000 "Volume spike"
alert cross 26500 "Price crosses 26.5k"
src/
├── order_book.rs # High-performance order book engine
├── order.rs # Order and OrderSide definitions
├── price.rs # Price handling with NaN safety
├── trade.rs # Trade execution logic
├── binance_ws.rs # Binance WebSocket client
├── binance_orders.rs # Binance order management
├── polymarket_orders.rs # Polymarket CLOB integration
├── ui.rs # Terminal UI with ratatui
├── main.rs # Application entry point
└── lib.rs # Module exports and tests
- Lock-free Design: Uses atomic operations and lock-free data structures
- Concurrent Processing: Multi-threaded order matching
- Memory Efficient: Optimized data structures with minimal allocations
- Real-time Updates: Sub-millisecond order processing
- Order Processing: <1ms latency
- Concurrent Orders: 10,000+ orders/second
- Memory Usage: <100MB for 1M orders
- CPU Usage: <5% on modern hardware
# Binance API credentials
BINANCE_API_KEY=your_api_key
BINANCE_SECRET_KEY=your_secret_key
# Polymarket settings
POLYMARKET_HOST=https://clob.polymarket.com
POLYMARKET_CHAIN_ID=137
cargo test
cargo test -- --nocapture
cargo fmt
cargo clippy
cargo audit
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open Pull Request
This project is licensed under the MIT License.
- Issues: GitHub Issues
- Documentation: Code comments and this README
- Community: Rust trading community discussions