1- # Installation Guide — QECTOR Decoder v0.5.4
1+ # Installation Guide — QECTOR Decoder v3 ( v0.5.6)
22
3- The current repository does ** not** include ` install.py ` . Use the source build path below.
3+ The fastest path is a direct PyPI wheel install. Source builds are only needed
4+ when you want to develop against the Rust core or target a platform without a
5+ published wheel.
46
5- ## Windows PowerShell
7+ ---
68
7- Install Rust first from rustup, then run:
9+ ## PyPI wheel install (recommended)
10+
11+ ``` bash
12+ pip install qector-decoder-v3
13+ python -c " from qector_decoder_v3 import UnionFindDecoder, BlossomDecoder; print('QECTOR OK')"
14+ ```
15+
16+ Optional extras:
17+
18+ ``` bash
19+ pip install " qector-decoder-v3[stim]"
20+ pip install " qector-decoder-v3[bench]"
21+ pip install " qector-decoder-v3[all]"
22+ ```
23+
24+ ---
25+
26+ ## Windows note
27+
28+ Use the ` pip ` bound to your active standard CPython environment. Do not force
29+ ` py -m pip ` unless you have verified which interpreter the Windows launcher selected.
30+ On some systems ` py ` selects the free-threaded interpreter (` python3.13t.exe ` ).
31+ QECTOR v0.5.x publishes standard CPython wheels only — not ` cp313t ` .
32+
33+ Check launcher targets:
34+
35+ ``` powershell
36+ py -0p
37+ ```
38+
39+ Working PowerShell install:
40+
41+ ``` powershell
42+ pip install qector-decoder-v3
43+ python -c "from qector_decoder_v3 import UnionFindDecoder, BlossomDecoder; print('QECTOR OK')"
44+ ```
45+
46+ ---
47+
48+ ## Source build (Windows PowerShell)
49+
50+ Install Rust from https://rustup.rs first, then:
851
952``` powershell
1053git clone https://github.com/GuillaumeLessard/qector-decoder.git
@@ -19,18 +62,20 @@ $env:PYO3_PYTHON = (Resolve-Path .\.venv\Scripts\python.exe).Path
1962.\.venv\Scripts\python.exe -c "from qector_decoder_v3 import UnionFindDecoder; print('QECTOR OK')"
2063```
2164
22- ### Verified Windows result
65+ Expected output ending:
2366
24- This command has been verified from a fresh clone on a second Windows PC with Python 3.11. The expected successful ending is:
25-
26- ``` text
27- Installed qector-decoder-v3-0.5.4
67+ ```
68+ Installed qector-decoder-v3-0.5.6
2869QECTOR OK
2970```
3071
31- During the base install, pip may print ignored optional-extra messages for packages such as pytest, stim, pymatching, sinter, and ldpc. That is normal because the public command installs the minimal CPU-safe runtime build. Install optional test and benchmark dependencies only when needed.
72+ pip may print ignored optional-extra messages for pytest, stim, pymatching, sinter,
73+ and ldpc during install. That is expected — the base command installs the minimal
74+ CPU-safe runtime only.
3275
33- ## Git Bash on Windows
76+ ---
77+
78+ ## Source build (Git Bash on Windows)
3479
3580``` bash
3681git clone https://github.com/GuillaumeLessard/qector-decoder.git
@@ -46,40 +91,59 @@ python -m maturin develop --release --no-default-features
4691python -c " from qector_decoder_v3 import UnionFindDecoder; print('QECTOR OK')"
4792```
4893
49- ## Optional test dependencies
94+ ---
5095
51- ``` powershell
52- .\.venv\Scripts\python.exe -m pip install "pytest>=7" "hypothesis>=6" "fastapi>=0.110" "uvicorn>=0.29" "httpx>=0.27" stim pymatching sinter ldpc beliefmatching psutil matplotlib tabulate scipy
53- .\.venv\Scripts\python.exe -m pytest python/tests -q --tb=short
96+ ## Source build (Linux / macOS)
97+
98+ ``` bash
99+ git clone https://github.com/GuillaumeLessard/qector-decoder.git
100+ cd qector-decoder
101+
102+ python3 -m venv .venv
103+ source .venv/bin/activate
104+ pip install --upgrade pip maturin
105+
106+ maturin develop --release --no-default-features
107+
108+ python -c " from qector_decoder_v3 import UnionFindDecoder; print('QECTOR OK')"
54109```
55110
56- ## Optional feature builds
111+ ---
57112
58- The first install uses ` --no-default-features ` because it is the safest public CPU path.
113+ ## Optional test dependencies
59114
60115``` powershell
61- # CUDA only
62- .\.venv\Scripts\python.exe -m maturin develop --release --no-default-features --features cuda
63-
64- # OpenCL only
65- .\.venv\Scripts\python.exe -m maturin develop --release --no-default-features --features opencl
116+ .\.venv\Scripts\python.exe -m pip install `
117+ "pytest>=7" "hypothesis>=6" "fastapi>=0.110" "uvicorn>=0.29" "httpx>=0.27" `
118+ stim pymatching sinter ldpc beliefmatching psutil matplotlib tabulate scipy
66119
67- # Full infrastructure build
68- .\.venv\Scripts\python.exe -m maturin develop --release --features full
120+ .\.venv\Scripts\python.exe -m pytest python/tests -q --tb=short
69121```
70122
71- ## Common fixes
123+ ---
124+
125+ ## Optional feature builds
72126
73- If ` maturin ` is missing, install it with the venv Python:
127+ The default install uses ` --no-default-features ` for the safest public CPU path.
128+
129+ To build with CUDA and OpenCL support:
74130
75131``` powershell
76- .\.venv\Scripts\python.exe -m pip install --upgrade pip maturin
132+ .\.venv\Scripts\python.exe -m maturin develop --release
77133```
78134
79- If Rust is missing, install Rust and restart the shell.
135+ CUDA requires the NVCC toolchain and CUDA driver >= 7.5.
136+ OpenCL requires a valid ICD loader and GPU driver. See ` docs/PLATFORM_ARTIFACT_ROADMAP.md `
137+ for the known AMD OCL SDK Light false-negative on ` is_available() ` .
80138
81- If GPU feature builds fail, build the CPU-safe path first:
139+ ---
82140
83- ``` powershell
84- .\.venv\Scripts\python.exe -m maturin develop --release --no-default-features
85- ```
141+ ## Verified platforms
142+
143+ | Platform | Python | Wheel | Notes |
144+ | ---| ---| ---| ---|
145+ | Windows 10 x64 | 3.11, 3.13 | Published | GTX 1660 Ti CUDA 7.5 validated |
146+ | Linux x86\_ 64 | 3.9 – 3.13 | Published | CI-built, not locally validated |
147+ | macOS arm64 | 3.9 – 3.13 | Published | CI-built |
148+ | macOS x86\_ 64 | 3.9 – 3.13 | Not published | Source build required |
149+ | cp313t (free-threaded) | — | Not published | Standard CPython only in v0.5.x |
0 commit comments