Skip to main content

Source-available Rust/Python QEC R&D platform: PyMatching-compatible validation, belief-matching, BP-OSD (LDPC/qLDPC), CPU/GPU batch decoding, and artifact-hashed benchmark evidence

Project description

QECTOR Decoder v3

Source-available Rust/Python quantum error correction decoding platform.

QECTOR Decoder v3 provides a Python package backed by a native Rust extension for quantum error correction research and validation workflows. It includes PyMatching-compatible MWPM validation, Union-Find decoding, belief-matching experiments, BP-OSD/qLDPC workflows, batch decoding, and optional GPU backend checks where the release build and target machine support them.

Website: https://www.qector.store
Repository: https://github.com/GuillaumeLessard/qector-decoder
Commercial licensing: https://www.qector.store


Installation

pip install qector-decoder-v3

Supported package target for the public release workflow:

  • Python 3.9 to 3.13
  • Linux x86_64 wheels
  • Windows x64 wheels
  • macOS arm64 wheels
  • Source distribution for custom/source builds

Optional research and validation extras:

# Stim, Sinter, PyMatching, LDPC and belief-matching ecosystem
pip install "qector-decoder-v3[stim]"

# Benchmark and plotting harness
pip install "qector-decoder-v3[bench]"

# Full validation environment
pip install "qector-decoder-v3[all]"

Quick start

import numpy as np
from qector_decoder_v3 import UnionFindDecoder, BlossomDecoder

check_to_qubits = [[0, 1], [1, 2], [2, 3], [3, 4]]
n_qubits = 5
syndrome = np.array([0, 1, 0, 0], dtype=np.uint8)

fast = UnionFindDecoder(check_to_qubits, n_qubits)
print(fast.decode(syndrome))

mwpm = BlossomDecoder(check_to_qubits, n_qubits)
print(mwpm.decode(syndrome))

Batch decoding:

import numpy as np
from qector_decoder_v3 import BatchDecoder, CUDABatchDecoder

checks = [[0, 1], [1, 2], [2, 3], [3, 4]]
syndromes = np.random.randint(0, 2, size=(4096, 4), dtype=np.uint8)

cpu = BatchDecoder(checks, n_qubits=5)
corrections = cpu.parallel_batch_decode(syndromes)

if CUDABatchDecoder.is_available():
    gpu = CUDABatchDecoder(checks, n_qubits=5)
    corrections = gpu.batch_decode(syndromes)

Stim workflow:

import stim
from qector_decoder_v3 import BlossomDecoder
from qector_decoder_v3.stim_compat import stim_circuit_to_check_matrix

circuit = stim.Circuit.generated(
    "surface_code:rotated_memory_z",
    distance=5,
    rounds=5,
    after_clifford_depolarization=0.005,
)

checks, n_qubits = stim_circuit_to_check_matrix(circuit)
decoder = BlossomDecoder(checks, n_qubits)

Included decoder families

Module Primary use Status
UnionFindDecoder Fast approximate decoding Stable public API
FastUnionFindDecoder Optimized Union-Find path Stable public API
BlossomDecoder Exact MWPM / PyMatching-parity validation Stable public API
SparseBlossomDecoder Faster near-optimal matching Experimental
BeliefMatching Correlated-noise accuracy experiments Research/accuracy mode
BpOsdDecoder LDPC and qLDPC workflows Experimental
BatchDecoder / CPUBatchDecoder CPU Monte Carlo sweeps Stable public API
CUDABatchDecoder CUDA batch decoding Runtime/build dependent
OpenCLBatchDecoder OpenCL batch decoding Runtime/build dependent
stim_compat Stim circuit and DEM conversion Stable utility
sinter_compat Sinter custom decoder integration Stable utility
rest_api Local decoding service Local/partner review only

Evidence-backed positioning

QECTOR Decoder v3 is positioned as a source-available QEC R&D platform, not as a blanket replacement for every mature decoder in every workload.

The repository includes public benchmark artifacts and reproduction scripts for:

  • PyMatching-parity logical-error-rate checks on selected surface-code workloads
  • belief-matching accuracy experiments on selected workloads
  • GPU bit-identity checks against CPU output on a tested NVIDIA machine
  • native memory profiling for selected decoder paths

Important boundaries:

  • PyMatching remains faster for standard MWPM latency in the checked-in comparison artifacts.
  • Belief-matching is an accuracy/research mode and is much slower in the provided experiments.
  • GPU availability and performance depend on wheel build features, drivers, hardware, and runtime checks.
  • OpenCL support must be confirmed on the target machine or built under the appropriate licensed/custom configuration.
  • REST/API surfaces are for local experiments or controlled review unless separately hardened.

Full methodology, reproducibility notes, and benchmark artifacts are in the GitHub repository:

https://github.com/GuillaumeLessard/qector-decoder


GPU availability check

from qector_decoder_v3 import CUDABatchDecoder, OpenCLBatchDecoder

print("CUDA:", CUDABatchDecoder.is_available())
print("OpenCL:", OpenCLBatchDecoder.is_available())

Do this before making any hardware-specific performance claim.


Licensing

QECTOR Decoder v3 is source-available.

Personal, academic, educational and non-commercial research use is allowed under the repository license. Company use, funded institutional work, SaaS, hosted API deployment, OEM integration, redistribution, paid consulting, or commercial benchmarking requires a commercial license.

Commercial licensing:

https://www.qector.store

Contact:

admin@qector.store


Citation

@software{lessard2026qector,
  author  = {Guillaume Lessard},
  title   = {{QECTOR Decoder v3}: Rust/Python Quantum Error Correction Decoding Platform},
  year    = {2026},
  version = {0.5.0},
  url     = {https://www.qector.store},
  note    = {Source-available. Commercial license required for commercial use.}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qector_decoder_v3-0.5.0.tar.gz (320.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

qector_decoder_v3-0.5.0-cp313-cp313-win_amd64.whl (510.4 kB view details)

Uploaded CPython 3.13Windows x86-64

qector_decoder_v3-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (609.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

qector_decoder_v3-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (538.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

qector_decoder_v3-0.5.0-cp312-cp312-win_amd64.whl (510.1 kB view details)

Uploaded CPython 3.12Windows x86-64

qector_decoder_v3-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (609.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

qector_decoder_v3-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (538.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

qector_decoder_v3-0.5.0-cp311-cp311-win_amd64.whl (510.0 kB view details)

Uploaded CPython 3.11Windows x86-64

qector_decoder_v3-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (609.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

qector_decoder_v3-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (542.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

qector_decoder_v3-0.5.0-cp310-cp310-win_amd64.whl (510.2 kB view details)

Uploaded CPython 3.10Windows x86-64

qector_decoder_v3-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (609.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

qector_decoder_v3-0.5.0-cp310-cp310-macosx_11_0_arm64.whl (542.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

qector_decoder_v3-0.5.0-cp39-cp39-win_amd64.whl (511.3 kB view details)

Uploaded CPython 3.9Windows x86-64

qector_decoder_v3-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (611.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

qector_decoder_v3-0.5.0-cp39-cp39-macosx_11_0_arm64.whl (543.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file qector_decoder_v3-0.5.0.tar.gz.

File metadata

  • Download URL: qector_decoder_v3-0.5.0.tar.gz
  • Upload date:
  • Size: 320.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for qector_decoder_v3-0.5.0.tar.gz
Algorithm Hash digest
SHA256 fc85ba751d7a0c219f0405bd685233585da30270c01ba24f178cbf3dc257b937
MD5 b73331ddf15e9fcf0aa5dbcaa792181a
BLAKE2b-256 76ac2505124dbfdbcee14ca6b2797dfc636fffae530dc919bb975e1bc9fe4fd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0.tar.gz:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b636b9c341932e52e6ceb928775dd5f621f1d8491fec1e148ea500408fc3230d
MD5 d5d4b421a73d53dc36c4d5275300aa7e
BLAKE2b-256 df0b82b0846cbd5f39fe77b60d3870f31d752aa3ae351e33bdebda1771129b26

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp313-cp313-win_amd64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ed82bf6c91e20c594412aee1420a4b268a36fb82a15c428b9b714c2ff883ae96
MD5 2913ddc94934b69f3d49dc7962f54b67
BLAKE2b-256 33f9fc0bf6e1b4ccd9229e932942972203293d03bd21dfcc7a869281711e6750

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f8c4b9e7ac04068a1f34b17a060ce988eac73ae57a6d159503a926745f48e7c9
MD5 0def63217b48279c091f02afd1eb29b6
BLAKE2b-256 8ec8e89b7b72677e7ffb49c8395b67e58576d673a7cfa499d9f8b2666aff8584

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 37f196ca9a7008d03545f7ee999ba8975f5e1fb84be6c7c6ce3928fb6ae34bb8
MD5 0fb65960e62c80290809c36eddaf04df
BLAKE2b-256 93711ad8bdfec52d4b3f9e7d92c537eff78cf3efa273865fdc4bba1c75fc8976

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp312-cp312-win_amd64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2df12fd467539f36ef16d7e250f5654f3c5dfc753c727421c4c1b1865e1a9e0
MD5 349e51d3a91aff706514a6009e51324d
BLAKE2b-256 87daba18bb720e0f39c013fa040175ed982a99395513f04bac3b21aeb9609a48

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11f8081d90468df7da601ff42fcd39cccb33fb20812d71623314649807f751fb
MD5 ed32085eca944cbc5407620878cf45f2
BLAKE2b-256 7654b21b0753036f5bb26412368fb367e43cded302535d6efbc9b744cd758ffb

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6affd4437b3d3439ce590f8f48c8401f4c1dfc52707b94d3fae10ef6f899e0ee
MD5 a088702cadc95db841bee0deebb55db7
BLAKE2b-256 289f8f9f480bb723d7194878b2cdaae5cc9020a59e24de3c73cce451f775975c

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp311-cp311-win_amd64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 71e80145fb44a4d7dd727b2ee1348a78e4a3b949fd5fd1be1c6203e1c8843e51
MD5 6ae8c975b67c1ffb88eb755c658ceb77
BLAKE2b-256 386a592259609f345a4bf26301ecd4acb06d980e3e4453214b364b2049810dfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a146a3857516e72e391cff70d6fa68a5098929019b321bff1add3b9eb1ecd4b
MD5 c2889470f07e3dac566d97256bbaa8fd
BLAKE2b-256 002f16fcac6dd5298cd6b42ff3cbcd070786657e7e5c8ec6f2797572bc4abe64

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 544a0cd0bb2c2e9c7f4b80c5f7f5c2c3aed7bca45f4672132659cb98041ad000
MD5 ca512772770c6a31d10e9735a9960031
BLAKE2b-256 7853c6aa8efe9fd1cba1239b91193c9306638f2381b138fa62c0627a471cac20

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp310-cp310-win_amd64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6456e35b6531fc39bcd447a9c16556f661e7ada0f189999454094abff5cde27b
MD5 bf09778638298a3f48833c2ffd37ce76
BLAKE2b-256 e2d28bcf1bb6b33360d670a8f4b029a9eb06cf62523b2408a169fec0a15b444e

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 215602a4e5847f3682d691f34447b70905bfcf67fc1d4b1b53d8431ca641564e
MD5 0a92fa3ddc588a6c2c0807ee2e74fdc3
BLAKE2b-256 418263501fde490e28cc040cbb9340852877ceb3c12da5aef3942f1cdc6a5f89

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9d83ffb5219249abb06e7a2ef9ddd68e73db851672cd8f8955462c4eb01483b1
MD5 10dea9987bcd959bd808a968949e69ca
BLAKE2b-256 7c4e2d1f20970879bcf6a63309269145c32f1b556238521d8a5d76b1aadfa048

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp39-cp39-win_amd64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a7163d1c4d5a3b9bc12624640a6e3510c608e5907dcfd417e79610fdd1fb9a9
MD5 359459798b28cc1b44c4fc06588d1972
BLAKE2b-256 d19e1b52100f3192a3f314983fc2e5a43cb3dbfdbb609720f8d9c9eb33223232

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qector_decoder_v3-0.5.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qector_decoder_v3-0.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0c2ee873b697d47a7dbca6fdca020e315aef99d97021732961544f1b2194f307
MD5 3621952673db372344161ce72fcae155
BLAKE2b-256 63c695384cc8e579e15fd30baf9caab0b06931b94b8118b30e06436043df03c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for qector_decoder_v3-0.5.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: CI.yml on GuillaumeLessard/qector-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page