All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Fix deprecated
logger.warn()→logger.warning()across 80+ files - Fix MEXC WebSocket
_setup_loggerindentation error inmarket_wss_base.pyandaccount_wss_base.py - Replace residual
print()with logger inMyWebsocketApp.message_rsp() - Fix hardcoded salt in
security.py— now uses random salt viaos.urandom(16)
- Remove
cythonfrom runtime dependencies (build-only dependency) - Relax
numpyversion constraint from<2.0.0to allow NumPy 2.x - CI: MyPy type checking now fails CI on errors (was
continue-on-error) - CI: Bandit security scan now fails CI on findings (was
continue-on-error) - Add pytest timeout (30s per test) to prevent hanging tests
CHANGELOG.md— this file
- Unified
BtApiinterface — callget_tick(),make_order()etc. directly onBtApi - Registry Pattern for plug-and-play exchange extensions
- EventBus for publish/subscribe event dispatching
AbstractVenueFeedprotocol andAsyncWrapperMixinRateLimiterwith sliding window / fixed window modesConnectionPoolfor HTTP/WebSocket connection reuseSecureCredentialManagerfor encrypted API key storage- Custom exception hierarchy (
BtApiError,ExchangeNotFoundError, etc.) - 73 exchange registrations
- CTP (China Futures) C++ extension via SWIG
- Cython performance extension for calculations
- WebSocket exponential backoff reconnection in
MyWebsocketApp - Comprehensive test suite with unit/integration markers
- MkDocs documentation site
- GitHub Actions CI/CD (tests, lint, security)
- OKX spot/swap full implementation with WebSocket support
- Binance spot/swap with account WebSocket streams
- HTX (Huobi) spot trading support
- Interactive Brokers Web API integration
- Browser cookie support for IB Web API
- Initial multi-exchange framework
- Standardized data containers (Ticker, OrderBook, Bar, Order, Position, etc.)
- YAML-based exchange configuration system