### 40 releases (8 stable)

1.2.5 | Feb 15, 2023 |
---|---|

1.2.0 | Jan 9, 2023 |

1.2.0-alpha.2 | Dec 9, 2022 |

1.2.0-alpha.1 | Nov 3, 2022 |

0.5.1 | Jul 29, 2021 |

#**13** in Science

**2,840** downloads per month

Used in **11** crates

**Apache-2.0**

500KB

8K
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

~6MB

~127K SLoC