Skip to content

v0.7.0 — Unified PyO3 (abi3) FFI + complete TA-Lib surface

Latest

Choose a tag to compare

@lavs9 lavs9 released this 18 Jul 16:20
· 154 commits to main since this release
59f92d4

Retroactive GitHub Release for v0.7.0 (already tagged and published to PyPI). See docs/changelog.md for the full history.

Added

  • Complete classic TA-Lib surface (quantwave.talib): 161 functions, up from 8 — RSI, MACD, SMA, EMA, ATR, ADX, BBANDS, STOCH, OBV, all 61 candlestick patterns, plus math/price transforms. The classic array-in/array-out API (talib.RSI(close, timeperiod=14), multi-output tuples, OHLC/candlestick inputs) delegates to the Polars .ta plugins — values are the talib-rs-parity-tested Rust results.
  • Top-level native symbol access restored: qw.FracDiff, qw.fracdiff, qw.rsi, qw.SuperTrend, … bind alongside the slug-based qw.ta namespace.

Changed

  • Unified the Python FFI on PyO3 (abi3), retiring uniffi. Indicator bindings, Polars expression plugins, and the backtest engine are now a single PyO3 abi3-py39 extension in one crate (quantwave-py) producing one cdylib — a single maturin build yields one cp39-abi3 wheel with no wheel-merge step.
  • Collapsed the three PyO3 crates (quantwave-python, quantwave-plugins, quantwave-backtest-py) into quantwave-py; deleted scripts/build_unified_wheel.py; consolidated to one pyproject.toml.

Fixed

  • Wheel tag / install correctness: the published wheel is now cp39-abi3 and installs correctly on CPython 3.9–3.13. 0.6.1 shipped a py3-none wheel bundling CPython-3.12-only extensions, which broke pip install on 3.9/3.10/3.11/3.13.

PyPI: https://pypi.org/project/quantwave/0.7.0/