Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qbraid/qbraid-qir
qBraid-SDK QIR transpiler integration
https://github.com/qbraid/qbraid-qir
cirq llvm openqasm python qbraid qir quantum
Last synced: 13 days ago
JSON representation
qBraid-SDK QIR transpiler integration
- Host: GitHub
- URL: https://github.com/qbraid/qbraid-qir
- Owner: qBraid
- License: gpl-3.0
- Created: 2023-11-27T15:32:12.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-11-06T14:00:58.000Z (14 days ago)
- Last Synced: 2024-11-06T14:45:04.418Z (14 days ago)
- Topics: cirq, llvm, openqasm, python, qbraid, qir, quantum
- Language: Python
- Homepage: https://docs.qbraid.com/qir
- Size: 902 KB
- Stars: 16
- Watchers: 2
- Forks: 6
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
Awesome Lists containing this project
README
qBraid-SDK extension providing support for QIR conversions.
[](https://account.qbraid.com?gitHubUrl=https://github.com/qBraid/qbraid-qir.git)
## Motivation
This project aims to make [QIR](https://www.qir-alliance.org/) representations accessible via the qBraid-SDK [transpiler](#architecture-diagram), and by doing so, open the door to language-specific conversions from any and all high-level quantum languages [supported](https://docs.qbraid.com/sdk/user-guide/overview#supported-frontends) by `qbraid`. See QIR Alliance: [why do we need it?](https://www.qir-alliance.org/qir-book/concepts/why-do-we-need.html).
## Installation
qBraid-QIR requires Python 3.10 or greater, and can be installed with pip as follows:
```shell
pip install qbraid-qir
```### Optional dependencies
qBraid-QIR offers integrations that require extra (optional) dependencies, which can be installed as follows:
For OpenQASM 3 to QIR conversions, install the `qasm3` extra:
```shell
pip install 'qbraid-qir[qasm3]'
```For Cirq to QIR conversions, install the `cirq` extra:
```shell
pip install 'qbraid-qir[cirq]'
```### Install from source
You can also install from source by cloning this repository and running a pip install command
in the root directory of the repository:```shell
git clone https://github.com/qBraid/qbraid-qir.git
cd qbraid-qir
pip install .
```To include optional dependencies when installing from source, use the same "extras_require" format, e.g.
```shell
pip install '.[qasm3,cirq]'
```## Check version
You can view the version of qbraid-qir you have installed within a Python shell as follows:
```python
import qbraid_qirqbraid_qir.__version__
```## Resources
- [User Guide](https://docs.qbraid.com/qir/user-guide)
- [API Reference](https://sdk.qbraid.com/projects/qir/en/stable/api/qbraid_qir.html)
- [Example Notebooks](https://github.com/qBraid/qbraid-lab-demo/tree/main/qbraid_qir)
- [Docker Containers](docker)## Usage examples
### OpenQASM 3 conversions
```python
from qbraid_qir import qasm3_to_qirprogram = """
OPENQASM 3;
include "stdgates.inc";qubit[2] q;
bit[2] c;h q[0];
cx q[0], q[1];measure q[0] -> c[0];
measure q[1] -> c[1];
"""module = qasm3_to_qir(program, name="my-program")
ir = str(module)
```### Cirq conversions
```python
import cirq
from qbraid_qir import cirq_to_qirq0, q1 = cirq.LineQubit.range(2)
circuit = cirq.Circuit(
cirq.H(q0),
cirq.CNOT(q0, q1),
cirq.measure(q0, q1)
)module = cirq_to_qir(circuit, name="my-circuit")
ir = str(module)
```## Architecture diagram
qBraid-SDK transpiler hub-and-spokes [architecture](https://docs.qbraid.com/qir/user-guide/overview#architecture-diagram) with qbraid-qir integration (left) mapped to language specific conversion step in QIR abstraction [layers](https://www.qir-alliance.org/qir-book/concepts/why-do-we-need.html) (right).
## Contributing
- Interested in contributing code, or making a PR? See
[CONTRIBUTING.md](CONTRIBUTING.md)
- For feature requests and bug reports:
[Submit an issue](https://github.com/qBraid/qbraid-qir/issues)
- For discussions, and specific questions about qBraid-QIR, or
other topics, [join our discord community](https://discord.gg/TPBU2sa8Et)
- For questions that are more suited for a forum, post to
[QCSE](https://quantumcomputing.stackexchange.com/)
with the [`qbraid`](https://quantumcomputing.stackexchange.com/questions/tagged/qbraid) tag.
- By participating, you are expected to uphold our [code of conduct](CODE_OF_CONDUCT).## Citation
If you use qBraid-QIR in your research, we kindly request that you cite it appropriately.
The BibTeX entry below is aligned with the latest stable release. For the most up-to-date
citation details, please refer to [CITATION.cff](CITATION.cff).```bibtex
@software{Gupta_qBraid-QIR_Python_package_2024,
author = {Gupta, Harshit and Jain, Rohan and Kushnir, Samuel and Parakh, Priyansh and Hill, Ryan James},
license = {GPL-3.0},
month = aug,
title = {{qBraid-QIR: Python package for QIR conversions, integrations, and utilities.}},
url = {https://github.com/qBraid/qbraid-qir},
version = {0.2.3},
year = {2024}
}
```## Acknowledgements
This project was conceived in cooperation with the Quantum Open Source Foundation ([QOSF](https://qosf.org/)).
## License
[GNU General Public License v3.0](LICENSE)