stochastic-rs 2.6.0

Quantitative finance in Rust: 120+ stochastic processes, option pricing, model calibration, volatility surfaces, fixed income, risk and copulas — SIMD/GPU accelerated, with Python bindings.
Documentation
[build-system]
requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin"

[project]
name = "stochastic-rs"
description = "Quantitative finance for Python, powered by Rust: 120+ stochastic processes, option pricing, model calibration, volatility surfaces, fixed income, risk and copulas — numpy-in / numpy-out."
requires-python = ">=3.9"
dynamic = ["version"]
dependencies = ["numpy"]
readme = "README.md"
license = {text = "MIT"}
keywords = [
  "quantitative-finance",
  "option-pricing",
  "quantlib",
  "stochastic-processes",
  "monte-carlo",
  "derivatives",
  "volatility",
  "heston",
  "calibration",
  "fixed-income",
  "risk-management",
  "copula",
  "sde",
  "rough-volatility",
]
classifiers = [
  "Development Status :: 5 - Production/Stable",
  "Intended Audience :: Developers",
  "Intended Audience :: Financial and Insurance Industry",
  "Intended Audience :: Science/Research",
  "Operating System :: MacOS",
  "Operating System :: Microsoft :: Windows",
  "Operating System :: POSIX :: Linux",
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3.9",
  "Programming Language :: Python :: 3.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Programming Language :: Python :: 3.13",
  "Programming Language :: Python :: Implementation :: CPython",
  "Programming Language :: Rust",
  "Topic :: Office/Business :: Financial",
  "Topic :: Office/Business :: Financial :: Investment",
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
  "Topic :: Scientific/Engineering :: Information Analysis",
  "Topic :: Scientific/Engineering :: Mathematics",
]

[project.optional-dependencies]
dev = ["pytest>=7.0", "numpy", "scipy"]

[project.urls]
Homepage = "https://stochastic.rust-dd.com"
Documentation = "https://stochastic.rust-dd.com/docs/python"
Repository = "https://github.com/rust-dd/stochastic-rs"
Issues = "https://github.com/rust-dd/stochastic-rs/issues"
Changelog = "https://github.com/rust-dd/stochastic-rs/releases"

[tool.pytest.ini_options]
testpaths = ["stochastic-rs-py/tests"]
python_files = "test_*.py"
addopts = "-q"

# The Python module is produced by the `stochastic-rs-py` cdylib crate (see
# stochastic-rs-py/Cargo.toml), not by the workspace umbrella `stochastic-rs`
# (which is a regular `lib`). `manifest-path` redirects maturin to the right
# crate so `maturin build` / `maturin develop` work from the workspace root.
[tool.maturin]
manifest-path = "stochastic-rs-py/Cargo.toml"
module-name = "stochastic_rs"
# `features` is intentionally NOT pinned here — the `.github/workflows/pypi.yml`
# wheel builds pass platform-specific features explicitly:
#   * Linux + macOS → `--features openblas` (system-link + auditwheel/delocate
#     bundling)
#   * Windows       → `--features openblas-static` (vendored, statically linked
#     OpenBLAS via `openblas-src` because the prebuilt MinGW `.lib` does not
#     link cleanly with MSVC)
# Local `maturin develop` defaults to the empty feature set; pass
# `--features openblas` if you want the full surface during development.