Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ file disagree).

### Documentation

- Package metadata points at the real docs (rustdoc for the crate, a Changelog URL for Python); README and docs no longer present the PyPI name as decided (#58)
- Rustdoc under `/api/rust/`, a generated Python reference, docstrings and `.pyi` stubs (#54) ([#192](https://github.com/Open-Quant/openquant/pull/192))
- Rustdoc and doctests for the remaining `openquant` modules (#37) ([#180](https://github.com/Open-Quant/openquant/pull/180))
- Rustdoc and doctests for 15 `openquant` modules (#37) ([#144](https://github.com/Open-Quant/openquant/pull/144))
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,11 @@ uv run --python .venv/bin/python maturin develop --manifest-path crates/pyopenqu
uv run --python .venv/bin/python python -c "import openquant; print('ok')"
```

The Python distribution will be published as **`pyopenquant`**; the import name is
`openquant`. Do not `pip install openquant` - that name on PyPI belongs to an
unrelated project. The extension crate (`crates/pyopenquant`) ships only as a
wheel built with maturin, never as a crate on crates.io.
The import name is `openquant`. The name the package will be published under on
PyPI is not decided yet ([#58](https://github.com/Open-Quant/openquant/issues/58)).
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
```bash
Expand Down
2 changes: 1 addition & 1 deletion crates/openquant/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ edition = "2024"
description = "Rust implementations of methods from Advances in Financial Machine Learning (AFML)"
repository = "https://github.com/Open-Quant/openquant"
homepage = "https://open-quant.github.io/openquant/"
documentation = "https://open-quant.github.io/openquant/"
documentation = "https://open-quant.github.io/openquant/api/rust/openquant/"
license = "MIT"
keywords = ["quant", "finance", "trading", "afml", "machine-learning"]
categories = ["finance", "science", "algorithms"]
Expand Down
2 changes: 1 addition & 1 deletion crates/pyopenquant/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license = "MIT"
repository = "https://github.com/Open-Quant/openquant"
homepage = "https://open-quant.github.io/openquant/"
readme = "../../README.md"
# Distributed as the `pyopenquant` wheel on PyPI (built by maturin), never as a crate.
# Shipped only inside the Python wheel built by maturin, never as a crate on crates.io.
publish = false

[lib]
Expand Down
8 changes: 4 additions & 4 deletions docs-site/src/content/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ hero:
link: /openquant/modules/
variant: minimal
status: authored
last_authored: '2026-09-26'
last_authored: '2026-09-30'
audience:
- quant-dev
- platform-engineering
Expand All @@ -36,9 +36,9 @@ Pre-release. Version 0.1.0 is not on PyPI or crates.io, so installing means
building from source: about 10–20 minutes the first time, seconds afterwards. The
[Quickstart](/quickstart/) takes you from a clone to a printed result.

When it is published, the Python distribution will be `pyopenquant` and the
import name `openquant`. Do not `pip install openquant` — that name on PyPI
belongs to an unrelated project.
The import name is `openquant`; the name it will be published under on PyPI is
not decided yet. Do not `pip install openquant` — that name on PyPI belongs to
an unrelated project.

## What using it looks like

Expand Down
1 change: 1 addition & 0 deletions docs-site/src/content/docs/project/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ file disagree).

### Documentation

- Package metadata points at the real docs (rustdoc for the crate, a Changelog URL for Python); README and docs no longer present the PyPI name as decided (#58)
- Rustdoc under `/api/rust/`, a generated Python reference, docstrings and `.pyi` stubs (#54) ([#192](https://github.com/Open-Quant/openquant/pull/192))
- Rustdoc and doctests for the remaining `openquant` modules (#37) ([#180](https://github.com/Open-Quant/openquant/pull/180))
- Rustdoc and doctests for 15 `openquant` modules (#37) ([#144](https://github.com/Open-Quant/openquant/pull/144))
Expand Down
8 changes: 4 additions & 4 deletions docs-site/src/content/docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Quickstart
description: Install OpenQuant and get one real result out of it.
status: authored
last_authored: '2026-09-26'
last_authored: '2026-09-30'
audience:
- quant-dev
- platform-engineering
Expand All @@ -27,9 +27,9 @@ cd openquant
## Step 2 — Install

OpenQuant is not on PyPI yet: the Python package sits on a compiled PyO3
extension, so installing it means building it. It will be published as
`pyopenquant` (import name `openquant`). Do not `pip install openquant` —
that name on PyPI belongs to an unrelated project.
extension, so installing it means building it. The import name is
`openquant`; the name it will be published under is not decided yet. Do not
`pip install openquant` — that name on PyPI belongs to an unrelated project.

```bash
uv venv --python 3.11 .venv
Expand Down
9 changes: 5 additions & 4 deletions docs-site/src/content/docs/setup/python-bindings.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Python Bindings Setup
description: Build the PyO3 extension, install it into a virtual environment, and prove it imports.
status: authored
last_authored: '2026-09-26'
last_authored: '2026-09-30'
audience:
- quant-dev
- platform-engineering
Expand All @@ -13,9 +13,10 @@ sidebar:
OpenQuant is not on PyPI yet. The Python package is a thin pure-Python layer
(`python/openquant/`) over a compiled PyO3 extension
(`crates/pyopenquant/`, built as `openquant._core`), so getting it means
building it. It will be published as `pyopenquant` with the import name
`openquant`. Do not `pip install openquant`: that name on PyPI belongs to an
unrelated project, so the command succeeds and installs the wrong package.
building it. The import name is `openquant`; the name it will be published
under on PyPI is not decided yet. Do not `pip install openquant`: that name on
PyPI belongs to an unrelated project, so the command succeeds and installs the
wrong package.

Before you start: [Prerequisites](/setup/prerequisites/). You need a Rust
toolchain, a linker, and `uv`.
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ requires = ["maturin>=1.9.4,<2.0"]
build-backend = "maturin"

[project]
# Placeholder: the PyPI distribution name is not decided yet (#58). The import name is
# `openquant` whatever this becomes.
name = "pyopenquant"
version = "0.1.0"
description = "Rust implementations of methods from Advances in Financial Machine Learning, with Python bindings (import name: openquant)"
Expand All @@ -27,6 +29,7 @@ Homepage = "https://open-quant.github.io/openquant/"
Documentation = "https://open-quant.github.io/openquant/"
Repository = "https://github.com/Open-Quant/openquant"
Issues = "https://github.com/Open-Quant/openquant/issues"
Changelog = "https://github.com/Open-Quant/openquant/blob/main/CHANGELOG.md"

[tool.maturin]
manifest-path = "crates/pyopenquant/Cargo.toml"
Expand Down
Loading