Skip to content

Releases: beatzxbt/mm-toolbox

mm-toolbox 1.0.0b7

12 May 14:49

Choose a tag to compare

mm-toolbox 1.0.0b7 (2026-05-12)

Orderbook

  • Lower minimum levels from 64 to 4.
  • Optimize hot paths with local variable binding and eliminate nested calls.
  • Implement incremental delta maintenance and BBO caching.
  • Fix P0 core bugs: BBO worse-price handling, delta bid loop, u64 overflow.
  • Fix heap buffer overflow in consume_deltas.
  • Fix PyOrderbookLevel.from_struct() missing __cinit__ arguments.
  • Guard double-to-uint64 conversions against non-finite and negative values.
  • Reorganize tests into 3-tier architecture and fix weak/zero assertions.

Candles

  • Fix critical bugs and improve performance.

Time

  • Harden C time module: fix thread safety, remove malloc, add nogil, buffer hardening.

Utilities

  • Replace Decimal with pure C implementation for _rounding_factor.

SHM / Ringbuffer

  • Fix SPSC ringbuffer bugs and improve performance.
  • Split monolithic core.pyx into _shm/spsc/mpsc modules.
  • Add consume_into/consume_all_into for SHM ringbuffers.
  • Remove ZMQ IPC ringbuffer and zmq dependency.
  • Add ringbuffer protocols; standardize insert/insert_batch to return bool.
  • Remove packed operations from SHM ringbuffers.
  • Unify monolithic and split ringbuffer APIs.
  • Remove overwrite_latest; add insert_char/consume_into to bytes ringbuffers.
  • Add allocation overflow checks in BytesRingBufferFast constructor.
  • Validate message lengths in consumer path to prevent out-of-bounds access.
  • Harden shared-memory file creation with O_EXCL, O_NOFOLLOW, and fstat validation.
  • Remove insert_char from public Python API to prevent out-of-bounds reads.

Logging

  • Finalize advanced logging system.
  • Redesign standard logger as single-threaded sync logger.
  • Fix .shm/ artifact buildup in tests by using tmp_path for IPC fixtures.
  • Create fresh HTTP sessions per push and randomize default SHM path.
  • Prevent u32 overflow in binary protocol buffer capacity calculations.

Websocket

  • Remove WsConnectionState; add direct accessors and tests.
  • Fold _safe methods into dispatch; eliminate duplicate state checks.
  • Remove redundant state checks from public send methods.
  • Remove thread-safety dispatch; assume single-threaded callers.
  • Increase default ping interval to 1s; use fast EMA for latency tracking.
  • Replace get_type_hints with safe annotation inspection to prevent code execution.
  • Add local server benchmarks for WsSingle and WsPool.
  • Remove live Binance benchmark in favor of local server benchmarks.
  • Simplify benchmark CLI to symbols and stream-kinds only.

Moving Average

  • Refactor API, fix ringbuffer compatibility, add tests and protocol.
  • Align TEMA pxd declarations with pyx implementation.

Rate Limiter

  • Simplify design and fix correctness issues.

Benchmarks

  • Add MPSC, candles, moving average, rate limiter, and rounding benchmarks.
  • Migrate websocket benchmarks to core BenchmarkReporter.
  • Eliminate all artifact leaks across IPC, SHM, and logging tests/benchmarks.

Examples

  • Add candle types, moving averages, and MPSC pipeline demos.
  • Restore binance_stream.py with SPSC SHM ringbuffer.
  • Fix binance_stream.py SPSC startup race condition.
  • Repair binance_stream.py with multiple critical fixes.

Build / CI

  • Build macOS arm64-only wheels; ignore local wheel artifacts.
  • Add Cython-aware coverage reporting; merge coverage targets into test-coverage.

v0.2.1

14 Sep 10:59

Choose a tag to compare

  • Fix scipy requirement on general import, now isolates to linalg
  • Linalg functionality limited to specific import only

v0.2.0

14 Sep 10:03
3be2453

Choose a tag to compare

Changes/Upgrades

  • Numba: Complete coverage of Numba's top-level functions (with custom implementation if faster).

  • Orderbook: Directly update BBA, ++Performance

  • Candles: ++Performance

  • Websocket: Fast websocket pool + auto swapping latency mechanism.

Notes

  • Changed root folder from /mm_toolbox/src/ -> /src/mm_toolbox/ for easier poetry installation and specific imports
  • Added all to every init.py for easier * imports (inline with ruff suggestions)
  • Removed black formatting
  • Reduced dependencies, now shows prompts with requirements if needed. Goal is to reduce base dependencies as much as possible.

v0.1.2

26 Aug 07:22
d9f34f4

Choose a tag to compare

What's Changed

Full Changelog: v0.1.1...v0.1.2

v0.1.1

24 Aug 12:40
2a6292e

Choose a tag to compare

  • Full functioning base set of features, near 100% test coverage:

    • Candles (Time, Tick, Volume)
    • Logger (Text, Discord, Telegram)
    • Moving Average (EMA, HMA)
    • Numba (Partial coverage Array, Full coverage LinAlg)
    • Orderbook (Standard array style)
    • Ringbuffer (1D, 2D, Multi-Dim)
    • Rounding
    • Time (ISO8601 to-and-fro)
    • Websocket (Payload integrity verification)
    • Weights (EMA, Geometric)
  • PyPI release (https://pypi.org/project/mm-toolbox/)

  • Poetry dependency management

(v0.1.0 skipped due to PyPI dependency clash, invalid build)