### 65 releases (24 stable)

new 1.11.0 | Apr 5, 2024 |
---|---|

1.11.0-alpha.2 | Mar 28, 2024 |

1.10.0 | Feb 12, 2024 |

1.8.0 | Dec 8, 2023 |

0.5.1 | Jul 29, 2021 |

#**97** in Simulation

**3,182** downloads per month

Used in **17** crates

**Apache-2.0**

695KB

12K
SLoC

# roqoqo

roqoqo is a toolkit to represent quantum circuits by HQS Quantum Simulations.

For a detailed introduction see the user documentation and the qoqo examples repository

What roqoqo is:

- A toolkit to represent quantum programs including circuits and measurement information
- A thin runtime to run quantum measurements
- A way to serialize quantum circuits and measurement information
- A set of optional interfaces to devices, simulators and toolkits (e.g. qoqo_quest, qoqo_mock, qoqo_qasm)

What roqoqo is **not**:

- A decomposer translating circuits to a specific set of gates
- A quantum circuit optimizer
- A collection of quantum algorithms

## roqoqo

roqoqo provides:

- A

struct to represent quantum circuits`Circuit` - A

enum to represent quantum programs using different measurement methods`QuantumProgram` - Structs representing single-qubit, two-qubit, multi-qubit and measurement operations that can be executed (decomposed) on any universal quantum computer
- Structs representing so-called PRAGMA operations that only apply to certain hardware, simulators or annotate circuits with additional information
- Enums that group operations based on the properties of operations (
*e.g.*

for all operations or`Operation`

for all unitary operations acting on a single qubit)`SingleQubitGateOperation` - Support for symbolic variables
- Readout based on classical registers
- Measurement structs for evaluating observable measurements based on raw readout date returned by quantum computer backends
- An

trait defining a standard for interfacing from qoqo to hardware and simulators that can return measured values`EvaluatingBackend` - A

trait defining a standard to obtain connectivity information and a noise model for quantum computing devices`Device` - Serialize and deserialize support for

and`Circuit`

via the serde crate.`QuantumProgram`

This software is still in the beta stage. Functions and documentation are not yet complete and breaking changes can occur.

This project is partly supported by PlanQK.

### Installation

To use roqoqo in a Rust project simply add

`roqoqo = {version="1.0"}
`

to the

section of the project Cargo.toml.`[``dependencies``]`

#### Dependencies

~6–16MB

~198K SLoC