Skip to main content

Bloq

Quantum workload orchestration — one SDK, every backend.

Bloq is a Python SDK by Bloq Quantum that lets you schedule and run quantum circuits across simulators, hardware providers, and the Bloq Quantum managed platform — from a single, unified interface.

PyPI Python License CI

Status: 0.4.0, pre-1.0. The public surface is frozen within a minor and takes bug-fix patches; breaking changes are allowed at the next minor until 1.0. estimate_cost / set_budget / spend_summary are reserved signatures that currently raise BloqCloudRequired.


What it does

Bloq sits between your circuit-authoring SDK of choice (Qiskit, Cirq, Braket, PennyLane, pytket, pyquil, QIR, raw OpenQASM, …) and the backend where the circuit actually runs (simulators or real quantum hardware). You write your circuit in whichever framework you prefer; Bloq handles transpilation, credential management, job dispatch, and result retrieval.

There are two ways to run a circuit through Bloq:

  1. Direct providers — use your own API keys / credentials from IBM, AWS Braket, IonQ, Rigetti, and others. Bloq routes the job to the provider on your behalf.
  2. Bloq Quantum platform — use a single Bloq API key and spend credits on any provider integrated into the Bloq platform. No per-provider accounts required.

Why Bloq?

Without Bloq With Bloq
Learn each provider's SDK separately Write once, run anywhere
Manage credentials in scattered configs Centralised credential store
Manually convert circuits between formats Automatic transpilation via OpenQASM and other IRs
No unified job tracking Single scheduler with status and results
Pay each provider individually Use Bloq credits via the managed platform

Architecture (planned)

┌────────────────────────────────────────────────┐
│                  BloqClient                    │
│  (submit, list_backends, credentials, config)  │
├────────────────────────────────────────────────┤
│              Provider Registry                 │
│  ┌──────┐ ┌──────┐ ┌──────┐ ┌──────────────┐   │
│  │ IBM  │ │ AWS  │ │IonQ  │ │  Bloq Cloud  │   │
│  └──┬───┘ └──┬───┘ └──┬───┘ └──────┬───────┘   │
├─────┼────────┼────────┼────────────┼───────────┤
│            Circuit Transpiler / IR             │
│              (OpenQASM + adapters)             │
├─────┼────────┼────────┼────────────┼───────────┤
│               Job Scheduler                    │
│    (queue, dispatch, monitor, results)         │
└────────────────────────────────────────────────┘

Installation

pip install bloq

Bloq does not require any quantum framework to be installed. Use whichever framework you already have — Qiskit, Cirq, Braket, PennyLane, pytket, pyquil, pyqir, or none — and Bloq will work alongside it.

Optional convenience extras

If you're starting fresh and want Bloq to pull in a framework pinned to a version range we've tested against, you can use an extra:

pip install "bloq[qiskit]"          # Bloq + qiskit >=2.0,<3.0
pip install "bloq[aer]"             # Bloq + qiskit + qiskit-aer >=0.17
pip install "bloq[ibm]"             # Bloq + qiskit + qiskit-ibm-runtime >=0.45
pip install "bloq[cirq]"            # Bloq + cirq-core >=1.5
pip install "bloq[braket]"          # Bloq + amazon-braket-sdk >=1.100
pip install "bloq[pennylane]"       # Bloq + pennylane >=0.40
pip install "bloq[pytket]"          # Bloq + pytket >=2.0,<3.0
pip install "bloq[qir]"             # Bloq + pyqir >=0.12,<0.13
pip install "bloq[quantinuum]"      # Bloq + qnexus >=0.46,<0.48
pip install "bloq[iqm]"             # Bloq + iqm-client >=34.0,<36.0
pip install "bloq[all-providers]"   # Bloq + all of the above

To combine extras, comma-separate them inside one bracket (repeating the package as "bloq[qiskit]" "bloq[cirq]" is unnecessary, and older pip rejects it with "Double requirement given"):

pip install "bloq[qiskit,cirq,aer]"

Keep the quotes: in zsh the brackets are a glob pattern and an unquoted bloq[...] fails with no matches found. Installing from a git reference still works, and extras attach to it the same way, e.g. pip install "bloq[qiskit,cirq] @ git+https://github.com/bloq-quantum/bloq.git@main".

Extras are purely a convenience. If you already have a framework installed — especially one pinned by your team or another dependency — stick with plain pip install bloq and Bloq will use whatever version you have, as long as it falls inside our supported range.

Tested matrix (August 2026)

Package Tested Supported range
qiskit 2.4.x >=2.0,<3.0
qiskit-aer 0.17.x >=0.17,<1.0
qiskit-ibm-runtime 0.48.x >=0.45,<1.0
cirq-core 1.7.x >=1.5,<2.0
amazon-braket-sdk 1.125.x >=1.100,<2.0
pennylane 0.45.x >=0.40,<1.0
pytket 2.18.x >=2.0,<3.0
pyqir 0.12.x >=0.12,<0.13
qnexus 0.47.x >=0.46,<0.48 — 0.48 is excluded; it imports selene_core without declaring it
iqm-client 35.0.x >=34.0,<36.0
httpx 0.28.x >=0.27

Qiskit 1.x is not supported — Bloq targets the Qiskit 2.x API. Versions outside the supported range raise UnsupportedProviderVersion at first use with a clear remediation message. BloqClient.version_report() returns the actually installed versions for easy copy-paste into bug reports.

Supported providers

Gate-model hardware and cloud services:

Provider Extra Notes
IBM Quantum bloq[ibm] via qiskit-ibm-runtime
Amazon Braket bloq[braket] cloud QPUs and the local simulator
IonQ bloq[ionq] direct, over api.ionq.co/v0.4 (no extra deps)
Azure Quantum bloq[azure]
Quantinuum bloq[quantinuum] H-series via Nexus, with emulators and syntax checkers
IQM bloq[iqm] Crystal + Star, via IQM Resonance
Rigetti bloq[rigetti] needs a local quilc; Python 3.11 to 3.12 only
Bloq Quantum Cloud (core) backend="bloq-cloud:<device>", one API key across the above

Neutral-atom (analog) hardware:

Provider Extra Notes
PASQAL bloq[pasqal] FRESNEL plus the EMU_* cloud emulators
QuEra bloq[quera] Aquila over Braket AHS, plus the Bloqade emulator

Local simulators:

Simulator Extra Notes
Qiskit Aer bloq[aer] / bloq[aer-gpu]
PennyLane Lightning bloq[pennylane] lightning-gpu, lightning-kokkos extras for accelerators
Qulacs bloq[qulacs] / bloq[qulacs-gpu]
stim bloq[stim] Clifford only, at million-qubit scale
cuQuantum bloq[cuquantum] tensor-network / MPS, CUDA only
Quantum Rings bloq[quantumrings] high-width statevector; needs a free activation token

Circuit-authoring frameworks you can hand to Bloq directly: Qiskit, Cirq, Braket, PennyLane, pytket, pyquil, QIR, Pulser, Bloqade, and raw OpenQASM 3.

Development

git clone https://github.com/bloq-quantum/bloq.git
cd bloq

python -m venv .venv
source .venv/bin/activate

pip install -e ".[dev,docs]"   # installs Bloq with dev tooling
pre-commit install

Common tasks

pytest                       # run the test suite
ruff check src/ tests/       # lint
ruff format src/ tests/      # format
mypy src/                    # type check
python -m build              # build sdist and wheel

Project layout

bloq/
├── src/bloq/              # Main package (to be populated)
├── tests/                 # Pytest test suite
├── .github/workflows/     # CI and PyPI publish workflows
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
└── pyproject.toml         # Build, lint, type-check, and test config

Contributing

Contributions are welcome. See CONTRIBUTING.md for setup, workflow, and pull-request guidelines.

License

Licensed under the Apache License 2.0.


Built by Bloq Quantum.

Metadata

Release files for bloq 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bloq 0.4.0
File Size Uploaded Provenance Actions
bloq-0.4.0.tar.gz 580.0 kB With provenance Details for bloq-0.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bloq 0.4.0
File Interpreter ABI Platform Actions
bloq-0.4.0-py3-none-any.whl Python 3 none any Details for bloq-0.4.0-py3-none-any.whl

Total release size: 1.0 MB

Release files / bloq-0.4.0.tar.gz

Download URL bloq-0.4.0.tar.gz
Size 580.0 kB
Tags Source
SHA-256 checksum
How to use checksums
cc15c3aea4cd2555cff5c3c88bbcafeed672d001eea1319109d95b72d01499d7
BLAKE2b-256 checksum
How to use checksums
3520f64099ff4e8616ec71b848cf634bf34816f7b20b7d3e6a95ae287197e4f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release files / bloq-0.4.0-py3-none-any.whl

Download URL bloq-0.4.0-py3-none-any.whl
Size 441.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
32da9b94c26500bc9395c728833f047867fa32beaa80a384b99ecd3fba132945
BLAKE2b-256 checksum
How to use checksums
b75760fae453d7135fac1b9ccc6fc69b5fd729bc6d04ed7f7659482525fce28a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Security for bloq 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for bloq-0.4.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page