Metadata-Version: 2.5
Name: iqm-qdmi
Version: 1.5.0
Summary: Implementation of a QDMI device for IQM Quantum Computers
Author-Email: IQM Finland Oy <developers@iqm.tech>
License-Expression: Apache-2.0 WITH LLVM-exception
License-File: LICENSE
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Scientific/Engineering :: Quantum Computing
Classifier: Typing :: Typed
Project-URL: Discussions, https://github.com/iqm-finland/QDMI-on-IQM/discussions
Project-URL: Documentation, https://iqm-finland.github.io/QDMI-on-IQM/
Project-URL: Homepage, https://github.com/iqm-finland/QDMI-on-IQM
Project-URL: Issues, https://github.com/iqm-finland/QDMI-on-IQM/issues
Requires-Python: >=3.11
Provides-Extra: qiskit
Requires-Dist: mqt-core~=4.1.1; extra == "qiskit"
Requires-Dist: numpy>=2.1; python_version >= "3.13" and extra == "qiskit"
Requires-Dist: numpy>=2.3.2; python_version >= "3.14" and extra == "qiskit"
Requires-Dist: numpy>=2.5.2; python_version >= "3.15" and extra == "qiskit"
Requires-Dist: qiskit[qasm3-import]>=2.1; extra == "qiskit"
Requires-Dist: qiskit-algorithms>=0.4; extra == "qiskit"
Description-Content-Type: text/markdown
Import-Name: iqm.qdmi
Import-Namespace: iqm

<p align="center">
  <a href="https://www.iqm.tech">
   <picture>
     <source media="(prefers-color-scheme: dark)" srcset="https://github.com/iqm-finland/QDMI-on-IQM/raw/refs/heads/main/docs/_static/iqm_logo_dark.svg">
     <img src="https://github.com/iqm-finland/QDMI-on-IQM/raw/refs/heads/main/docs/_static/iqm_logo.svg" alt="IQM Logo" width="40%">
   </picture>
  </a>
</p>

# QDMI on IQM

[![PyPI](https://img.shields.io/pypi/v/iqm-qdmi?logo=pypi&style=flat-square)](https://pypi.org/project/iqm-qdmi/)
[![Apache 2.0 with LLVM exception](https://img.shields.io/static/v1?logo=Apache&label=License&message=Apache%202.0%20with%20LLVM%20exception&color=informational&style=flat-square)](LICENSE)
[![C++20](https://img.shields.io/static/v1?logo=cplusplus&label=C%2B%2B&message=20&color=informational&style=flat-square)](https://isocpp.org/)
[![CMake](https://img.shields.io/static/v1?logo=CMake&label=CMake&message=3.24%2B&color=informational&style=flat-square)](https://cmake.org/)
[![CI](https://img.shields.io/github/actions/workflow/status/iqm-finland/QDMI-on-IQM/CI.yml?branch=main&style=flat-square&logo=github&label=CI)](https://github.com/iqm-finland/QDMI-on-IQM/actions/workflows/CI.yml)
[![codecov](https://img.shields.io/codecov/c/github/iqm-finland/QDMI-on-IQM?style=flat-square&logo=codecov)](https://codecov.io/gh/iqm-finland/QDMI-on-IQM)

**QDMI on IQM** is IQM's official, production-ready implementation of the
[Quantum Device Management Interface (QDMI)](https://github.com/Munich-Quantum-Software-Stack/qdmi)—a
vendor-neutral C/C++ API for quantum hardware. It connects HPC schedulers,
middleware, and Python toolchains to IQM processors through a single, stable
interface, handling session management, calibration queries, and job lifecycle
transparently.

<p align="center">
  <a href="https://iqm-finland.github.io/QDMI-on-IQM/">
  <img width=30% src="https://img.shields.io/badge/documentation-blue?style=for-the-badge&logo=read%20the%20docs" alt="Documentation" />
  </a>
</p>

## Installation

The easiest way to get started is via the Python package, which ships
pre-compiled binaries for Linux, macOS, and Windows:

```console
uv pip install iqm-qdmi          # core library and Python entry points
uv pip install iqm-qdmi[qiskit]  # adds the Qiskit backend (IQMBackend)
```

For C++ projects, integrate the library via CMake's `FetchContent` or install it
through [Spack](https://iqm-finland.github.io/QDMI-on-IQM/spack_guide.html) on
HPC clusters.

## Where to Start

| I want to…                                                        | Guide                                                                           |
| :---------------------------------------------------------------- | :------------------------------------------------------------------------------ |
| Run circuits on IQM hardware from **Python / Qiskit**             | [Qiskit Integration](https://iqm-finland.github.io/QDMI-on-IQM/qiskit.html)     |
| Walk through end-to-end workloads (benchmarks, quantum chemistry) | [Examples](https://iqm-finland.github.io/QDMI-on-IQM/examples.html)             |
| Integrate the **C++ library** directly                            | [Usage Guide](https://iqm-finland.github.io/QDMI-on-IQM/usage.html)             |
| Install via **Spack** on an HPC cluster                           | [Spack Guide](https://iqm-finland.github.io/QDMI-on-IQM/spack_guide.html)       |
| Understand the Python package's entry points                      | [Python Package](https://iqm-finland.github.io/QDMI-on-IQM/python_package.html) |
| Contribute to the project                                         | [Contributing](https://iqm-finland.github.io/QDMI-on-IQM/contributing.html)     |

## Contributing

Contributions are welcome — bug reports, documentation improvements, and new
features alike. See the
[Contributing Guide](https://iqm-finland.github.io/QDMI-on-IQM/contributing.html)
for the development workflow, coding standards, and pull request process.

## License

This project is licensed under the **Apache License 2.0 with LLVM exception**.
See [LICENSE](LICENSE) for the license text.
