Qrisp Plugin Overview¶
Beta
The Qrisp plugin is in beta. It works end to end, but the API and defaults may still change. We'd love your feedback: join the Quantum Rings community.
The openquantum-sdk[qrisp] plugin connects Qrisp to the Open Quantum platform, letting you run high-level Qrisp programs on real QPU hardware. It builds on the Core SDK (openquantum-sdk) for authentication and job submission, and on the Qiskit plugin for circuit conversion.
Qrisp is an open-source, high-level quantum programming language — an Eclipse Foundation project developed with Fraunhofer FOKUS. Learn more at the Qrisp website and the Qrisp GitHub repository.
Installation¶
This pulls in qrisp, openquantum-sdk, and openquantum-sdk-qiskit. There is no entry-point registration step: you import OpenQuantumBackend and pass it to Qrisp at call time.
What the Plugin Does¶
Qrisp already depends on Qiskit and can convert any program to a Qiskit circuit (QuantumCircuit.to_qiskit()). The Open Quantum backend uses that bridge, so it reuses the Qiskit plugin's serializer and capability validation rather than reimplementing them. When you call get_measurement (or qc.run) with an OpenQuantumBackend, the plugin:
- Compiles your Qrisp program to a Qiskit circuit.
- Flattens it onto a single quantum register (the platform precompiler requires one).
- Validates it against the target backend's capabilities (gate set, coupling map, shot and qubit limits).
- Converts it to OpenQASM and submits it through the Core SDK scheduler.
- Returns results in Qrisp's native decoded form, so the rest of your program is unchanged.
Quick Example¶
from qrisp import QuantumVariable, h, cx
from qrisp_openquantum import OpenQuantumBackend
oq = OpenQuantumBackend(
backend="rigetti:cepheus-1-108q",
shots=1024,
client_id="s_your_client_id",
client_secret="your_client_secret",
)
qv = QuantumVariable(2)
h(qv[0])
cx(qv[0], qv[1])
print(qv.get_measurement(backend=oq, shots=1024))
# {'00': 0.51, '11': 0.49}
Tip
Set OPENQUANTUM_CLIENT_ID and OPENQUANTUM_CLIENT_SECRET as environment variables to avoid passing credentials in code. See the Authentication guide.
Key Components¶
| Component | Description |
|---|---|
| OpenQuantumBackend | Qrisp Backend subclass. Implements run_async() to execute programs on Open Quantum. |
| OpenQuantumJob | Qrisp Job wrapper holding the completed counts. |
| Qiskit serializer | export_circuit_to_qasm, imported from the public openquantum_sdk_qiskit package, converts circuits to OpenQASM. |
| Core session | Shared OpenQuantumClient auth, token caching, and job submission. |
Supported Backends¶
The plugin works with any backend on the Open Quantum platform, identified by its short_code (e.g. "ionq:forte-1", "rigetti:cepheus-1-108q"). Discover backends with the Core SDK, the Qiskit plugin, or the Open Quantum Portal.
Shot-Based Execution Only¶
Open Quantum is a shot-based platform. Every execution requires a finite number of shots, set via the backend's shots option or the shots= argument to get_measurement / run.
Next Steps¶
- Getting Started — install, authenticate, and run.
- Supported Operations — gates, measurements, and bit ordering.
- Examples — Bell states, QuantumFloat arithmetic, and backend selection.
- Troubleshooting — auth, backend config, and common errors.