High-performance Rust + Polars quantitative finance library with 150+ indicators and full Ehlers DSP suite
Project description
QuantWave
High-performance quantitative finance library
Built in Rust · Native Polars support · 150+ indicators · Full Ehlers DSP suite
Python pip install quantwave (or pip install "quantwave[polars]" for Polars layer)
Rust cargo add quantwave
Purpose of Our Work
Most quant libraries force you to choose between speed and ease of use.
We built QuantWave to give you both.
- 150+ technical indicators with perfect TA-Lib parity
- Complete Ehlers Digital Signal Processing suite (the most advanced open-source cycle tools)
- Zero-copy Polars expressions that run at Rust speed
- Seamless batch + streaming modes
- Future-proof architecture (Options Greeks, risk metrics, etc. coming soon)
One library. Research to production. No compromises.
Quickstart (Python)
pip install "quantwave[polars]"
quantwave doctor
import polars as pl
import quantwave # registers pl.col().ta and LazyFrame.bt
df = pl.read_parquet("ohlcv.parquet")
df = df.lazy().with_columns(
pl.col("close").ta.rsi(timeperiod=14).alias("rsi"),
pl.col("close").ta.ema(period=20).alias("ema"),
).collect()
Features
- Lightning fast – Rust core with Polars native expressions.
- Battle-tested – Every indicator validated against reference implementations.
- Modern – Works perfectly in Jupyter, scripts, and live trading systems.
- MIT licensed – Free for commercial and personal use.
Next Steps
CLI
quantwave list # all indicators by category
quantwave info rsi # metadata for one indicator
quantwave doctor # verify core, polars, plugins, backtest
quantwave version
Python 0.6.0 packaging
- Unified PyPI wheel — core +
quantwave_plugins+quantwave._backtestin one install quantwave doctor— environment diagnostics for production pipelinespip install "quantwave[polars]"— adds Polars for batch.taand.btnamespaces
Python 0.5.2 DX Improvements (quantwave-p3z9)
We have made major improvements to the Python developer experience:
New recommended APIs:
quantwave.indicators()– discover available indicatorsquantwave.metadata("rsi")– rich per-indicator metadata (params, data inputs, warmup, category, etc.)quantwave.assert_parity(...)– verify batch vs streaming bit-identical behaviorquantwave.streaming_class("rsi")+wrap_streaming(...)– better streaming ergonomics with readiness tracking
Reduced namespace pollution:
- Result dataclasses and Options India helpers are now available under
quantwave.resultsandquantwave.options. - Old top-level access still works but emits
DeprecationWarning.
Other:
quantwave.__version__is now properly exposed.quantwave.categories()/category(name)for programmatic discovery.quantwave.boundary_info(name)for warmup and error semantics.quantwave.talibsubmodule withlist_functions()for TA-Lib migration.- Structured errors:
QuantwaveError,ParityError,IndicatorNotFoundError, etc. - Linux arm64 wheels are available.
Documentation: https://lavs9.github.io/quantwave/ — ML Features guide, Backtest quickstart, and API reference.
See the full list of changes in the main changelog.
Made with ❤️ for the quant community.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quantwave-0.6.0-py3-none-win_amd64.whl.
File metadata
- Download URL: quantwave-0.6.0-py3-none-win_amd64.whl
- Upload date:
- Size: 16.1 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afa6709eaaee55d43f4648d2155554866466fe24cab927d20d69f4525b6a259f
|
|
| MD5 |
409dbc756ae364099b2d0dc345c102f5
|
|
| BLAKE2b-256 |
57d00b97789f26275f5bdcf87f987cb83b8d90f5809f7b42f895650504101552
|
File details
Details for the file quantwave-0.6.0-py3-none-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: quantwave-0.6.0-py3-none-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 18.1 MB
- Tags: Python 3, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c1709e4dafc68ee2b37d9957510a34656a6ad985f1e15d8cb53b22121ddb40d
|
|
| MD5 |
4c7e26c3a78f4718bcc39fa2cbce2c24
|
|
| BLAKE2b-256 |
f27f05c1d9bd63d8374436a6459e7e77edd650c394af48072380d178e442a36c
|
File details
Details for the file quantwave-0.6.0-py3-none-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: quantwave-0.6.0-py3-none-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 17.4 MB
- Tags: Python 3, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adf5f9b042c863239fea6242f68c3947d24dd4fb606502020d1dbd6e5b4deafc
|
|
| MD5 |
f8503ab379d9f57c8b490c4feecbb7f0
|
|
| BLAKE2b-256 |
131d45506087a54f80d80b3379e46607798f76388b7d67ff12fe85839859ec54
|
File details
Details for the file quantwave-0.6.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: quantwave-0.6.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 15.7 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89c3814b531733af30e702f1e67a58f028a7a83b60def48b971f47586e05f77f
|
|
| MD5 |
e50ba999ed1a1c320fc88f9dfa961b42
|
|
| BLAKE2b-256 |
f9fc4709ad1bddc8107fa676bf2dc4ee54fcf3aed85dbc22295c9217101af672
|