Skip to content

Rust Guides

QuantWave's Rust workspace powers 218 native indicators, Polars integration, and the backtest engine. These guides explain when and how to use Rust directly — without duplicating the full docs.rs API reference.

Short answer

Use Python + Polars (pip install "quantwave[polars]") for research and backtests. Use Rust crates when embedding indicators in a service, building custom binaries, or contributing to the library.

Choose your path

Goal Start here
First Rust install Getting Started: Rust
Which crate to import Crate map
Streaming / live loops Next<T> pattern
Simulation without Python Rust backtest
Full API reference docs.rs — quantwave-core

Workspace layout

quantwave-core     → Next<T> indicators, features, regimes (single source of math)
quantwave-polars   → LazyFrame .ta() / .bt() namespace
quantwave-plugins  → Polars expression plugins (vectorized UDFs)
quantwave-backtest → Portfolio simulation engine
quantwave          → Umbrella re-exports for binary crates

Batch vs streaming parity

Every indicator implements Next<Input> in quantwave-core. That implementation is the single source of truth for:

  • Streaming structs (rsi.next(price))
  • Polars batch columns (.ta().rsi(...))
  • Gold-standard validation vectors

Python's quantwave.assert_parity() exists because this contract is enforced in CI.

Next steps