Skip to content

Commit 43e9c17

Browse files
authored
Add rust crate for the providers interface in Qiskit (#15892)
This commit adds a new crate to the qiskit crate collection for defining the BackendV3 interface in Qiskit. The backendv3 interface will be a Rust first construct that will expose a shared interface to both Python and C, while the current BackendV2 interface is only exposed to Python. As a first step to facilitate it's development this commit adds a new empty crate where we'll slowly build up the functionality of that interface. Right now it's just empty but in subsequent commits we'll add onto it.
1 parent f29a504 commit 43e9c17

6 files changed

Lines changed: 36 additions & 0 deletions

File tree

Cargo.lock

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ qiskit-cext = { path = "crates/cext" }
5858
qiskit-cext-vtable = { path = "crates/cext-vtable" }
5959
qiskit-circuit = { path = "crates/circuit" }
6060
qiskit-circuit-library = { path = "crates/circuit_library" }
61+
qiskit-providers = { path = "crates/providers" }
6162
qiskit-qasm2 = { path = "crates/qasm2" }
6263
qiskit-qasm3 = { path = "crates/qasm3" }
6364
qiskit-qpy = { path = "crates/qpy" }

crates/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ The intention is that (much) longer term, we might be wanting to expose more of
3030
* `qiskit-synthesis` is the crate for synthesis functionality.
3131
* `qiskit-circuit-library` is the crate for circuit library functions. It contains constructors or other
3232
circuit functionality that builds on the core circuit data model defined in `qiskit-circuit`.
33+
* `qiskit-providers` is the crate that defines the providers interface for Qiskit. The providers interface is what defines the concept of a Backend.
34+
The backend models a quantum computer, which is the QPU and the infrastructure around it required to execute circuits on the quantum computer.
3335
* `qiskit-util` is for small utility functions and data structures that are independent of all
3436
Qiskit-specific objects, so it can be depended-on by both `quantum-info` and `circuit`.
3537

crates/providers/Cargo.toml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[package]
2+
name = "qiskit-providers"
3+
version.workspace = true
4+
edition.workspace = true
5+
rust-version.workspace = true
6+
license.workspace = true
7+
8+
[lib]
9+
name = "qiskit_providers"
10+
11+
[dependencies]
12+
13+
[lints]
14+
workspace = true

crates/providers/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# `qiskit-providers`
2+
3+
This crate defines the Rust data structures and core providers interface
4+
for Qiskit.

crates/providers/src/lib.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// This code is part of Qiskit.
2+
//
3+
// (C) Copyright IBM 2026
4+
//
5+
// This code is licensed under the Apache License, Version 2.0. You may
6+
// obtain a copy of this license in the LICENSE.txt file in the root directory
7+
// of this source tree or at https://www.apache.org/licenses/LICENSE-2.0.
8+
//
9+
// Any modifications or derivative works of this code must retain this
10+
// copyright notice, and modified files need to carry a notice indicating
11+
// that they have been altered from the originals.

0 commit comments

Comments
 (0)