Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

qdk

The Quantum Development Kit (QDK) provides a single, cohesive Python entry point for compiling, simulating, and estimating resources for quantum programs (Q# and OpenQASM), with optional extras for visualization, cloud workflows, and interoperability with Qiskit and Cirq.

Install

To install the core functionality, which include Q# & OpenQASM simulation, compilation, and resource estimation support:

pip install qdk

To include the Jupyter extra, which adds visualizations using Jupyter Widgets in the qdk.widgets submodule and syntax highlighting for Jupyter notebooks in the browser:

pip install "qdk[jupyter]"

To add the Azure Quantum extra, which includes functionality for working with the Azure Quantum service in the qdk.azure submodule:

pip install "qdk[azure]"

For Qiskit integration, which exposes Qiskit interop utilities in the qdk.qiskit submodule:

pip install "qdk[qiskit]"

For Cirq integration, which exposes Cirq interop utilities in the qdk.cirq submodule:

pip install "qdk[cirq]"

To easily install all the above extras:

pip install "qdk[all]"

Quick Start

from qdk import qsharp

result = qsharp.run("{ use q = Qubit(); H(q); return MResetZ(q); }", shots=100)
print(result)

To use widgets (installed via qdk[jupyter] extra):

from qdk.qsharp import eval, run
from qdk.widgets import Histogram

eval("""
operation BellPair() : Result[] {
    use qs = Qubit[2];
    H(qs[0]);CX(qs[0], qs[1]);
    MResetEachZ(qs)
}
""")
results = run("BellPair()", shots=1000, noise=(0.005, 0.0, 0.0))
Histogram(results)

Public API Surface

Submodules:

  • qdk.qsharp – Q# interpreter functions: init, eval, run, compile, circuit, estimate, dump_machine, dump_circuit, dump_operation, and related types.
  • qdk.openqasm – OpenQASM compilation and execution.
  • qdk.estimator – resource estimation utilities.
  • qdk.simulation – noise-aware simulation utilities: NeutralAtomDevice, NoiseConfig, run_qir, DensityMatrixSimulator, StateVectorSimulator, and related types.
  • qdk.code – dynamic namespace populated at runtime with user-defined Q# and OpenQASM callables.
  • qdk.qre – quantum resource estimation v3: estimate, Application, Architecture, ISA, ISATransform, and related types.
  • qdk.applications – domain-specific quantum applications (e.g. qdk.applications.magnets).
  • qdk.widgets – Jupyter widgets for visualization (requires the qdk[jupyter] extra).
  • qdk.azure – Azure Quantum service integration (requires the qdk[azure] extra).
  • qdk.qiskit – Qiskit interop: QSharpBackend, NeutralAtomBackend, and related types (requires the qdk[qiskit] extra).
  • qdk.cirq – Cirq interop: NeutralAtomSampler (requires the qdk[cirq] extra).

Top level exports

For convenience, the following helpers and types are also importable directly from the qdk root (e.g. from qdk import code, Result). Algorithm execution APIs (like run / estimate) remain under qdk.qsharp or qdk.openqasm.

Symbol Type Origin Description
code module qdk.code Exposes operations defined in Q# or OpenQASM
init function qdk.qsharp.init Initialize/configure the QDK interpreter (target profile, options).
set_quantum_seed function qdk.qsharp.set_quantum_seed Deterministic seed for quantum randomness (simulators).
set_classical_seed function qdk.qsharp.set_classical_seed Deterministic seed for classical host RNG.
dump_machine function qdk.qsharp.dump_machine Emit a structured dump of full quantum state (simulator dependent).
Result class qdk.qsharp.Result Measurement result token.
TargetProfile class qdk.qsharp.TargetProfile Target capability / profile descriptor.
StateDump class qdk.qsharp.StateDump Structured state dump object.
ShotResult class qdk.qsharp.ShotResult Multi-shot execution results container.
PauliNoise class qdk.qsharp.PauliNoise Pauli channel noise model spec.
DepolarizingNoise class qdk.qsharp.DepolarizingNoise Depolarizing noise model spec.
BitFlipNoise class qdk.qsharp.BitFlipNoise Bit-flip noise model spec.
PhaseFlipNoise class qdk.qsharp.PhaseFlipNoise Phase-flip noise model spec.
Context class qdk.Context Isolated Q# and OpenQASM interpreter context for independent sessions.

Configuration Map

You can provide configuration at initialization time as a Python dictionary.

In Python, pass qdk_config: dict[str, int | float | str | bool] to Context(...). If qdk_config is omitted, the configuration map is empty. The map is immutable after initialization. To use different configuration values, create a new Context.

In Q#, read values with Std.Core.ConfigValue(name, defaultValue). In Q# code, config values are immutable: in the same program, repeated calls with the same (name, defaultValue) produce the same result.

Supported types: int, float, str, and bool (corresponding to Int, Double, String and Bool in Q#). The type of each value in qdk_config must match the type of its corresponding default value.

Example:

import qdk
context = qdk.Context(qdk_config={"experiment_name": "baseline", "shots": 1000})
assert context.eval('Std.Core.ConfigValue("experiment_name", "")') == "baseline"
assert context.eval('Std.Core.ConfigValue("shots", 100)') == 1000
assert context.eval('Std.Core.ConfigValue("noise_level", 0.01)') == 0.01

Telemetry

This library sends telemetry. Minimal anonymous data is collected to help measure feature usage and performance. All telemetry events can be seen in the source file telemetry_events.py.

To disable sending telemetry from this package, set the environment variable QDK_PYTHON_TELEMETRY=none

Support

For more information about the Microsoft Quantum Development Kit, visit https://aka.ms/qdk.

Contributing

Q# welcomes your contributions! Visit the Q# GitHub repository at [https://github.com/microsoft/qdk] to find out more about the project.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

qdk-1.30.4.dev0-cp310-abi3-win_arm64.whl (7.4 MB view details)

Uploaded CPython 3.10+Windows ARM64

qdk-1.30.4.dev0-cp310-abi3-win_amd64.whl (8.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

qdk-1.30.4.dev0-cp310-abi3-manylinux_2_35_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.35+ x86-64

qdk-1.30.4.dev0-cp310-abi3-manylinux_2_35_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.35+ ARM64

qdk-1.30.4.dev0-cp310-abi3-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

qdk-1.30.4.dev0-cp310-abi3-macosx_10_12_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file qdk-1.30.4.dev0-cp310-abi3-win_arm64.whl.

File metadata

  • Download URL: qdk-1.30.4.dev0-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: CPython 3.10+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: RestSharp/106.13.0.0

File hashes

Hashes for qdk-1.30.4.dev0-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 115608a5c13fa3872ebb6acfc26b1d08430ce60a31aae1b9092147d1ff3b4f87
MD5 dd9b2e5369e28ec5912344bc20a0db47
BLAKE2b-256 670bf2e1abb719ea928d60bfdce3a26bfe790cf9b605573514069ee107d41c4a

See more details on using hashes here.

File details

Details for the file qdk-1.30.4.dev0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: qdk-1.30.4.dev0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: RestSharp/106.13.0.0

File hashes

Hashes for qdk-1.30.4.dev0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e251f45fdbd1263bf94d7fce7a242df7d0bfa7149cd9902a20fbe9751c50112f
MD5 ba0a70a4d41a898fee5050c071a74c6c
BLAKE2b-256 4bf834b7dd9bd738b8701f0885732163355641d3e36423693c8c4f99c4d56fec

See more details on using hashes here.

File details

Details for the file qdk-1.30.4.dev0-cp310-abi3-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for qdk-1.30.4.dev0-cp310-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 e3ddc41f8ddf6f796afcccb074b9ee35686e97746a12930017775e63a0980c3d
MD5 805dadc5c2a96153acd3beec9ca28e47
BLAKE2b-256 1ff1935c295d0a0fe9672f98ed7a085f7dfea4b8610efc06fb28deb5e6a676b6

See more details on using hashes here.

File details

Details for the file qdk-1.30.4.dev0-cp310-abi3-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for qdk-1.30.4.dev0-cp310-abi3-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 a0e0aef1d51bcdf16d90628463c131b77dc7ca2127ba596053ea5921fa80291a
MD5 7544902046675f03716e4bc0ea2b9de1
BLAKE2b-256 c9dc13ba544f8997da6b48294a6002c0a989285ad495c06b90b0d7639b4830c2

See more details on using hashes here.

File details

Details for the file qdk-1.30.4.dev0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qdk-1.30.4.dev0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0f7ec1cb5eb15d00e84474b86744e73fb2cbc331e712929e8abef2143acf284
MD5 addfa4a0aef7c5c37b63458f624c319a
BLAKE2b-256 377592aabc9b6a60f05811e4249406aa4c8a753a8d934b03acdda92e7f304b7e

See more details on using hashes here.

File details

Details for the file qdk-1.30.4.dev0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for qdk-1.30.4.dev0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b2d3090e8c6bef9324879513f8d9826b3bbd7950a78ad6eaa27e49e2264630a5
MD5 cd3fcc84449a03b04f51f2770017311d
BLAKE2b-256 07828247c3c5e7bdf5e838e9f145f193f8501847c0299040877f1944141e710b

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

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