Skip to main content

QIR-QIS

Crates.io PyPI

A compiler that validates and translates QIR (Quantum Intermediate Representation) to Quantinuum QIS (Quantum Instruction Set). This tool enables quantum programs written in QIR to run on Quantinuum's quantum computing systems.

Features

  • QIR Validation: Validates QIR bitcode for correctness and spec compliance
  • QIS Translation: Compiles QIR to Quantinuum's native QIS instruction set
  • Python & Rust API: Use as a Rust library or Python package
  • CLI Tool: Command-line interface for quick compilation

See qtm-qir-reference.md for details on supported QIR features and their mapping to Quantinuum QIS.

Installation

From Source (Rust)

Requirements:

  • Rust >= 1.91.0
  • LLVM 21
# Point llvm-sys to your LLVM 21 installation
export LLVM_SYS_211_PREFIX=/path/to/llvm21

cargo build --release

The compiled binary will be available at target/release/qir-qis.

Python Package

Requirements:

  • Python >= 3.10, < 3.15
  • uv (recommended) or pip

Available pre-built wheels:

  • Linux: x86_64 (manylinux_2_28), aarch64 (manylinux_2_28)
  • macOS: x86_64, arm64 (Apple Silicon)
  • Windows: x86_64

All wheels support Python 3.10+ using the stable ABI (abi3).

# Using uv (recommended)
uv pip install qir-qis

# Using pip
pip install qir-qis

Usage

Command Line

Compile a QIR LLVM IR file to QIS bitcode:

# Basic usage
qir-qis input.ll

# With custom optimization level
qir-qis -O 3 input.ll

# Specify target architecture
qir-qis -t x86-64 input.ll

# Or using cargo
cargo run -- input.ll

This generates input.qis.bc containing the compiled QIS bitcode.

On Windows, the default mode remains conservative: -O 0 -t native. Optimized conversion requires requesting optimization (for example, -O 1) and is supported only with -t x86-64; other optimized target combinations still fail fast to avoid known unstable LLVM 21 paths.

Python API

See examples/python_api.py for a complete working example.

uv run examples/python_api.py

For a more comprehensive example with quantum simulation, see main.py.

Rust API

See examples/rust_api.rs for a complete working example.

cargo run --example rust_api

To keep untrusted entry-point metadata from driving effectively unbounded compiler allocations, validation and translation accept at most 65,535 statically declared qubits and 65,535 statically declared results. The Rust constants MAX_STATIC_QUBITS and MAX_STATIC_RESULTS expose these limits.

Platform Notes

Windows support is functional, but a few LLVM integration paths still differ from Linux and macOS:

  • Optimized conversion on Windows is currently supported only when optimization is requested (for example, -O 1) with -t x86-64; other optimized target combinations fail fast instead of entering known unstable LLVM paths.
  • LLVM verifier failures return a generic error on Windows instead of the full verifier message.
  • Native target codegen on Windows uses conservative CPU settings instead of host CPU feature detection.
  • -O0 optimization on Windows is a validation-only fast path and does not rewrite the module triple.

These limitations are implementation details of the current LLVM/Inkwell integration rather than QIR feature differences.

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for:

  • How to report issues and submit pull requests
  • Coding standards and commit message format
  • Development workflow and testing requirements

Development setup, test commands, and LLVM upgrade guidance live in DEVELOPMENT.md. Release notes are available in CHANGELOG.md.

License

Apache-2.0

Copyright Quantinuum

Metadata

Release files for qir-qis 0.1.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for qir-qis 0.1.11
File Actions
qir_qis-0.1.11-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for qir_qis-0.1.11-cp310-abi3-win_amd64.whl
qir_qis-0.1.11-cp310-abi3-manylinux_2_28_x86_64.whl CPython 3.10 abi3 Linux glibc 2.28+ x86-64 Details for qir_qis-0.1.11-cp310-abi3-manylinux_2_28_x86_64.whl
qir_qis-0.1.11-cp310-abi3-manylinux_2_28_aarch64.whl CPython 3.10 abi3 Linux glibc 2.28+ ARM64 Details for qir_qis-0.1.11-cp310-abi3-manylinux_2_28_aarch64.whl
qir_qis-0.1.11-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for qir_qis-0.1.11-cp310-abi3-macosx_11_0_arm64.whl
qir_qis-0.1.11-cp310-abi3-macosx_10_9_x86_64.whl CPython 3.10 abi3 macOS 10.9+ x86-64 Details for qir_qis-0.1.11-cp310-abi3-macosx_10_9_x86_64.whl

Total release size: 122.6 MB

Release files / qir_qis-0.1.11-cp310-abi3-win_amd64.whl

Download URL qir_qis-0.1.11-cp310-abi3-win_amd64.whl
Size 20.1 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
181d371c9fbc5091cedceaba156887f454def5bf35d02fab60f88b09a598e513
BLAKE2b-256 checksum
How to use checksums
7ff2fbdfd972df32041dae00796ab31df29d1cc1b3424e5b3a5f64c025f9aa8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / qir_qis-0.1.11-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL qir_qis-0.1.11-cp310-abi3-manylinux_2_28_x86_64.whl
Size 30.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
61444817dee4754b2c29c184dd9bc364278d0b16b6e552ae2ba24f18c9801655
BLAKE2b-256 checksum
How to use checksums
c131a84480182f7185c3706a3c6db357f2e23dc6df6d4e8ad53061ed2cd6f297
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / qir_qis-0.1.11-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL qir_qis-0.1.11-cp310-abi3-manylinux_2_28_aarch64.whl
Size 29.4 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
5fe323b1f42d7d89a1bb0ae79d3f602de6b8154ceeb8a612be845ba3d36f545b
BLAKE2b-256 checksum
How to use checksums
b83ec00eb922a188fce3717ed1e2125d526b9ae5a249aa26753c8a5abbf363e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / qir_qis-0.1.11-cp310-abi3-macosx_11_0_arm64.whl

Download URL qir_qis-0.1.11-cp310-abi3-macosx_11_0_arm64.whl
Size 21.0 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cd3620d169a7947ff4331796cee1b44920a70a2f90ca24969a1f3ed38b7703c4
BLAKE2b-256 checksum
How to use checksums
386da0963f5fc74813ed123783689791ae9a6ea36d1f576a20370050e6bc395f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / qir_qis-0.1.11-cp310-abi3-macosx_10_9_x86_64.whl

Download URL qir_qis-0.1.11-cp310-abi3-macosx_10_9_x86_64.whl
Size 21.9 MB
Tags CPython 3.10 abi3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
4f77231fdc6f5a18b2676ffccfaef295cf5736116de056ca446e2a79578ab244
BLAKE2b-256 checksum
How to use checksums
2e478151819751fcee4d399064ae17de65b02ca59add57a1816a6b76710f52aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Security for qir-qis 0.1.11

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 5 files in this release have been uploaded with provenance metadata.

Select from 5 files

Attestation for qir_qis-0.1.11-cp310-abi3-win_amd64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page