mimiq-qiskit
A drop-in Qiskit BackendV2 that lets Qiskit users submit circuits to
the MIMIQ cloud, or to any local MIMIQ simulator, without leaving the
Qiskit ecosystem. Build your circuits with QuantumCircuit, hand them
to a MimiqBackend, get back a familiar qiskit.result.Result.
Highlights:
MimiqBackend: aBackendV2covering the standard gate set, arbitraryUnitaryGates, and single-gate mid-circuit conditionals. A batch of circuits is submitted as a single MIMIQ job.- Wide conversion coverage: named gates map directly, controlled
gates become a native MIMIQ
Control, and anything else is decomposed through its own Qiskit definition — soinitialize,to_gate()blocks, and the rest of the standard library convert without a manual decomposition. MimiqSamplerV2/MimiqEstimatorV2: native Qiskit V2 primitives. The estimator reads each Pauli term off the simulator state, so a deterministic circuit carries no shot noise at any term weight. A circuit that ends in an ensemble (mid-circuit measurement, reset, noise) is averaged over trajectories, andshots=Nswitches to hardware-style sampled estimation.- MIMIQ-specific run options (
fuse,canonicaldecompose,bonddim,entdim,timelimit,noisemodel, and more) pass straight throughbackend.run(...).
Repository layout
mimiq-qiskit/
├── docs/ # Sphinx documentation
├── examples/ # Runnable examples
├── src/ # Python package
└── tests/ # Pytest suite
Qiskit is Python-only, so this repo has no Julia side; the package lives
at the repo root rather than under a nested mimiq-qiskit-python/
directory.
Quick start
from qiskit import QuantumCircuit
from mimiqlink import MimiqConnection
from mimiq_qiskit import MimiqBackend
# Authenticate against the MIMIQ cloud (opens a browser prompt).
conn = MimiqConnection()
conn.connect()
backend = MimiqBackend(conn)
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
job = backend.run(qc, shots=1000)
counts = job.result().get_counts()
print(counts)
Local MIMIQ simulators (anything implementing the
mimiqcircuits.backends.Backend interface) wrap the same way; pass the
backend instance instead of a connection. mimiq-exaqt
is a state-vector simulator on PyPI, so this needs no credentials:
from exaqt import ExaqtQCS
from mimiq_qiskit import MimiqBackend
backend = MimiqBackend(ExaqtQCS(), num_qubits=24)
Primitives
Prefer the native primitives for sampling and expectation values. On a deterministic circuit the estimator is exact, with no shot noise:
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from mimiq_qiskit import MimiqBackend, MimiqEstimatorV2
backend = MimiqBackend(conn)
estimator = MimiqEstimatorV2(backend)
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
result = estimator.run([(qc, SparsePauliOp(["ZZ", "XX"], [1.0, 0.5]))]).result()
print(result[0].data.evs)
See examples/sampling.py and examples/expectation_values.py for
runnable scripts, or examples/local_simulation.py to run without cloud
credentials.
Installation
pip install mimiq-qiskit
Development
Branch model: active development on devel, releases on main.
uv sync # install dev environment
uv run pytest -sxv # run the test suite
uv build # build wheel + sdist
The suite simulates against mimiq-exaqt, installed by uv sync as a
dev dependency, and compares results to Qiskit's own Statevector. Every
mapped gate is checked that way, because a mis-mapped gate or a dropped
qubit-ordering convention produces a well-formed but wrong result that
stubs and conversion round trips cannot see.
Repositories and releases
Development happens on the private GitLab repository (origin); the public
GitHub mirror (public, qperfect-io/mimiq-qiskit) is kept in sync on the
main branch and the public version tags:
mainandvX.Y.Ztags are pushed to bothoriginandpublic.vX.Y.Z-privatetags live only onorigin/develand never reach the public remote.
On the public repository, pushing a vX.Y.Z tag triggers the PyPI publish
and GitHub Pages documentation deploy. To develop against an unreleased
mimiqcircuits, add the sibling checkout locally without committing it:
uv add --editable ../mimiqcircuits-python
Metadata
Release files for mimiq-qiskit 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mimiq_qiskit-0.3.2.tar.gz | 36.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mimiq_qiskit-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 79.3 kB
Release files / mimiq_qiskit-0.3.2.tar.gz
| Download URL | mimiq_qiskit-0.3.2.tar.gz |
|---|---|
| Size | 36.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
20496ca0baf26c029e0f674864982695982783e614b0f00b22a872707e2e3017
|
|
BLAKE2b-256 checksum How to use checksums |
0f60b777e99e550a81d514fe7b81ec2f9e31bb0b0ff529ebad25ca03d891c591
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / mimiq_qiskit-0.3.2-py3-none-any.whl
| Download URL | mimiq_qiskit-0.3.2-py3-none-any.whl |
|---|---|
| Size | 42.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3bc99d0fe3f2ee223d1db217f6278c9c674896e4827646a66490aaa157e932e9
|
|
BLAKE2b-256 checksum How to use checksums |
7c7a8c08ee76e8486288f944106461360aa5e065a2ca85d338c859343a8d31ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|