QURI SDK
QURI SDK is an open source library suite for creating and executing quantum algorithms on various quantum computers and simulators. QURI SDK focuses on the followings:
- Modularity and extensibility: It provides small parts with which you can assemble your own algorithms. You can also use ready-made algorithms, customizing their details by replacing sub components easily.
- Platform independence: Once you assemble an algorithm with QURI SDK, you can execute it on various quantum computers or simulators without modifying the main algorithm code. Typically you only need to replace a few lines to switch to a different device or simulator.
- Performance: When dealing with a simulator, it is often the case that classical computation before and after quantum circuit simulation (such as data preparation and post processing) takes considerable time, spoiling performance of the simulator. We put an emphasis on computational performance and try to get the most out of simulators.
Covered areas and components
QURI SDK is a meta-package that bundles the following packages, ensuring that versions are always compatible.
- Core components
quri-parts: Quantum circuit and operator library. QURI Parts contains abstractions that represent generic quantum circuits and operators, including noise, estimators, samplers, etc. It also features a wide range of transpilers and interfaces with commonly used quantum SDKs. In addition it features a quantum circuit synthesis module that allows for advanced construction of circuits for fault tolerant quantum computing (FTQC). QURI Parts is platform independent -- quantum simulation and device execution is facilitated through backends defined in various subpackages- Quantum circuit simulators
- Quantum platforms/SDKs
quri-parts-braket: Amazon Braket SDKquri-parts-cirq: Cirq (Only circuit and operator conversion is supported yet)quri-parts-qiskit: Qiskitquri-parts-quantinuum: Quantinuumquri-parts-ionq: IONQ
- Intermediate representation support
quri-parts-openqasm: OpenQASM 3.0
- Higher level packages
quri-parts-qsub: Structured circuit generation for FTQC algorithmsquri-parts-algo: NISQ algorithm components- Ansatz, optimizer, error mitigation etc.
- Chemistry
quri-parts-chem: General concepts- Fermion-qubit mapping, electron integrals, ansatz etc.
quri-parts-pyscf: PySCF- Library support
quri-parts-openfermion: OpenFermion
quri-algo: Quantum algorithms and components for FTQC and Early FTQC. Contains time-evolution circuit factories and abstractions for algorithms, cost-functions, various problem definitions. It uses a modular design in which individual solvers and objective functions can be replaced or rewritten easily. Algorithms in QURI Algo are written to interface with QURI VM, although they use an abstract interface that can be used with user-defined virtual machines defined independently of QURI SDK.quri-vm: Quantum virtual machine library written to facilitate quantum resource estimation and device aware quantum circuit simulation. The user defines a VM which generates its own sampler and estimator as well as an analyzer for quantum circuit resource analysis.
Installation
QURI SDK requires Python 3.10 or later.
Use pip to install QURI Parts.
Default installation only contains components not depending specific platforms (devices/simulators) or external libraries.
You need to specify extras with square brackets ([]) to use those platforms and external libraries with QURI Parts:
# Default installation, no extras
pip install quri-sdk
# Use Qulacs, a quantum circuit simulator through its quri-parts interface
pip install "quri-sdk[qulacs]"
# Use Amazon Braket SDK
pip install "quri-sdk[braket]"
# Use Qulacs and OpenFermion, a quantum chemistry library for quantum computers
pip install "quri-sdk[qulacs,openfermion]"
Currently available extras for quri-parts are:
qulacsbraketqiskitcirqopenfermionstimopenqasmitensorqsubquantinuumionqpyscftkettensornetwork
You can also install individual components (quri-parts-*) directly.
In fact, quri-parts is a meta package, a convenience method to install those individual components.
Documentation and tutorials
Documentation of QURI SDK is available at https://quri-sdk.qunasys.com/. Tutorials would be a good starting point.
Release notes
See Releases page on GitHub.
Contribution guidelines
If you are interested in contributing to QURI Parts, please take a look at our contribution guidelines.
Authors
QURI SDK developed and maintained by QunaSys Inc.. All contributors can be viewed on GitHub.
License
QURI Parts is licensed under Apache License 2.0. QURI Algo is licensed under an MIT license. QURI VM is licensed under an MIT license.
Metadata
Release files for quri-sdk 0.28.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| quri_sdk-0.28.0.tar.gz | 5.8 kB | Without provenance | Details for quri_sdk-0.28.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| quri_sdk-0.28.0-py3-none-any.whl | Python 3 | none | any | Details for quri_sdk-0.28.0-py3-none-any.whl |
Total release size: 9.5 kB
Release files / quri_sdk-0.28.0.tar.gz
| Download URL | quri_sdk-0.28.0.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1327db0ec86c00a87654e2a1a4bf23f2b33ff126afb9ea5d9792c2e2fd232d9e
|
|
BLAKE2b-256 checksum How to use checksums |
fa9edf40d845211768edb977b3db3dcac7e2a8a375321dd9acd7c142b1976601
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / quri_sdk-0.28.0-py3-none-any.whl
| Download URL | quri_sdk-0.28.0-py3-none-any.whl |
|---|---|
| Size | 3.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
689fbcb3bd8341349fed4769349656ff4f688de990ba26b8fb1fca4be462893c
|
|
BLAKE2b-256 checksum How to use checksums |
4461ba264f9cbca4eb28c5062fe30977e7003ca52268596dc3fd52813ff7e647
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for quri-sdk 0.28.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.