Installation¶
SimQ ships as a Rust workspace with an optional Python extension. Pick the track that matches how you want to use it.
Rust¶
Add the umbrella crate to your Cargo.toml:
[dependencies]
simq = "0.1"
The simq crate re-exports every subcrate (simq-core, simq-gates,
simq-sim, simq-state, simq-compiler, simq-backend), so a single
dependency is all you need.
Requirements¶
Rust 1.75 or newer (
rustup updateto get the latest stable)No system dependencies — everything builds with
cargo
Building from source¶
git clone https://github.com/glanzz/simq.git
cd simq
cargo build --workspace --exclude simq-py
cargo test --workspace --exclude simq-py
Note
simq-py is a PyO3 extension module — it can only be linked when loaded
by a Python interpreter, so it is excluded from plain cargo build/cargo test runs and built separately with maturin (see below).
Python¶
The Python bindings live in the simq-py
crate and are built with maturin:
git clone https://github.com/glanzz/simq.git
cd simq/simq-py
# Create and activate a virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate
# Build and install the extension in development mode
pip install maturin
maturin develop --release
Verify the install:
import simq
print(simq.__version__)
Development install¶
For working on the bindings themselves (tests, benchmarks, docs tooling):
cd simq-py
pip install -e ".[dev]"
maturin develop
pytest
Next steps¶
Quickstart (Rust) — your first circuit in Rust
Quickstart (Python) — your first circuit in Python