PyQIR is a set of APIs for generating, parsing, and evaluating Quantum Intermediate Representation (QIR). It consists of the following components:
-
pyqir-generator [examples]:
This package provides a Python API for generating QIR (bitcode and IR). It is intended to easily integrate the QIR toolchain into existing Python-based frontends. -
pyqir-evaluator [examples]:
This package provides an easy way to execute generated QIR. It contains the necessary just-in-time compilation infrastructure as well an extensibility mechanism to define what actions to perform when a gate is applied in Python. -
pyqir-parser:
This package provides a Python API for loading QIR for basic analysis and transformation. For more advanced scenarios, we recommend taking a look at the LLVM-based infrastructure provide by the QAT tool.
This repository furthermore contains the qirlib; a Rust library wrapping LLVM libraries for working with QIR that is used by the above Python packages.
If you have feedback about the content in this repository, please let us know by filing a new issue!
There are many ways in which you can contribute to PyQIR, whether by contributing a feature or by engaging in discussions; we value contributions in all shapes and sizes! We refer to this document for guidelines and ideas for how you can get involved.
Contributing a pull request to this repo requires to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. A CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately. Simply follow the instructions provided by the bot. You will only need to do this once.
This project has adopted the community covenant Code of Conduct. Please contact qiralliance@mail.com for Code of Conduct issues or inquiries.