Open-Quant/openquant
Open-Quant/openquant has 56 GitHub stars and 5 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-15 03:32 UTC. Last push 2026-11-06.
Measured star growth
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
This is a repository for enabling collaborative and proper practices for financial machine learning.
Machine LearningREADME.md
Original
OpenQuant
Rust implementations of the methods in Advances in Financial Machine Learning, with Python bindings.
Documentation · Quickstart · Issues
Choose your documentation path
- For humans: Quickstart for a first result, then the module index.
- For agents: Agent guide for source files, research safeguards and validation commands. Read it alongside AI-DLC.md when changing the repository.
Status
Pre-release (0.1.0, unpublished). The Rust core covers most AFML chapters and is
tested in CI. The module index
lists the current Rust and Python surfaces. The installation below builds from source
so the examples and extension use the same revision. Open work is tracked in
issues; the reasoning behind it is in
docs/design/production-readiness-brief.md.
Install
Requires a Rust toolchain (pinned by rust-toolchain.toml), Python 3.11+ and
uv.
git clone https://github.com/Open-Quant/openquant.git && cd openquant
uv venv --python 3.13 .venv
uv sync --group dev
uv run --python .venv/bin/python maturin develop --manifest-path crates/pyopenquant/Cargo.toml
uv run --python .venv/bin/python python -c "import openquant; print('ok')"
The Python distribution name is pyopenquant; the import name is openquant.
Check the release notes for packaged
release availability; the commands above do not depend on a published wheel. Do not pip install openquant - that name on PyPI belongs
to an unrelated project.
The extension crate (crates/pyopenquant) is built into a wheel with maturin and is
never published to crates.io.
Quick Start
# Fast validation (what CI runs on every PR)
cargo test --workspace --lib --tests --all-features -- --skip test_sadf_test
# Long-running SADF hotspot (explicit; CI runs it nightly and on release tags)
cargo test -p openquant --test structural_breaks test_sadf_test -- --ignored
# Benchmarks
cargo bench -p openquant --bench perf_hotspots --bench synthetic_ticker_pipeline
# Collect + check benchmark thresholds against the committed baseline (machine-specific;
# CI instead compares a PR's head with its base on the same runner)
python3 scripts/collect_bench_results.py --criterion-dir target/criterion --out benchmarks/latest_benchmarks.json --allow-list benchmarks/benchmark_manifest.json
python3 scripts/check_bench_thresholds.py --baseline benchmarks/baseline_benchmarks.json --latest benchmarks/latest_benchmarks.json --max-regression-pct 35 --overrides benchmarks/threshold_overrides.json
Research Flywheel (Python + Rust)
# Python env + bindings
uv venv --python 3.13 .venv
uv sync --group dev
uv run --python .venv/bin/python maturin develop --manifest-path crates/pyopenquant/Cargo.toml
# Notebook logic smoke + reproducible experiment run
uv run --python .venv/bin/python python notebooks/python/scripts/smoke_all.py
uv run --python .venv/bin/python python experiments/run_pipeline.py --config experiments/configs/futures_oil_baseline.toml --out experiments/artifacts
# Rust notebook-companion smoke
cargo run -p openquant --example research_notebook_smoke
# Python pipeline micro-benchmark (for speed demos)
uv run --python .venv/bin/python python python/benchmarks/benchmark_pipeline.py --iterations 30 --bars 2048
# Python data-processing benchmark (per-function throughput/latency + JSON output)
uv run --python .venv/bin/python python python/benchmarks/benchmark_data_processing.py --rows-per-symbol 200000 --symbols 4 --iterations 7 --out benchmarks/data_processing/latest.json
Crate Layout
crates/openquant/src/: core library modulescrates/openquant/tests/: Rust test suitecrates/openquant/benches/: criterion benchmarkstests/fixtures/: shared fixturesbenchmarks/: baseline + latest benchmark snapshotsnotebooks/: Python notebooks + Rust Evcxr companionsexperiments/: config-driven experiment runner + artifacts
Publish Readiness
- Publishing checklist:
docs/publishing.md - Stabilization + productionization checklist:
docs/stabilization_productionization.md - Latest benchmark report:
docs/benchmark_snapshot.md - Python bindings quickstart + API map:
docs/python_bindings.md - Notebook-first workflow + promotion checklist:
docs/research_workflow.md
Docs site
The documentation at https://open-quant.github.io/openquant/ is built from docs-site/ (Astro + Starlight).
cd docs-site
bun install
bun run dev
Build output is published by GitHub Actions workflow: .github/workflows/docs-pages.yml.
Contributing
See CONTRIBUTING.md for setup, the test and docs gates, and pull request conventions, and tests/FIXTURES.md for where the test fixtures come from. Report security problems privately (SECURITY.md).
License
MIT (LICENSE)