Skip to main content

QREF

Quantum Resource Estimation Format (QREF) is an open format for representing quantum algorithms, optimized for usage in quantum resource estimation (QRE).

QREF comprises:

  • Definition of data format, formalized as a JSON schema.
  • A Python library for validation of quantum programs written in QREF format using Pydantic.
  • Rudimentary visualization tool qref-render.

Installation

Using QREF data format does not require installation - you can easily write quantum programs in YAML or JSON.

To install QREF Python package, run pip install qref.

Alternatively, you can clone this repository and build it from source:

# Clone QREF repo (you can use HTTP link as well)
git clone git@github.com:PsiQ/qref.git
cd qref
pip install .

QREF format

QREF format represents quantum programs as a hierarchical directed acyclic graphs (DAGs). That's a mouthful, so let us unpack what it means:

  • hierarchical: each node can contain subgraphs, i.e. routines can be nested inside larger routines.
  • directed: information flow is unidirectional, and the direction is unambiguous.
  • acyclic: meaning there are no loops.

Consider the following hierarchical DAG of a hypothetical quantum program:

program example

It can be succinctly written in QREF format as:

version: v1
program:
  name: my_algorithm
  ports:
  - direction: input
    name: in_0
    size: 2
  - direction: input
    name: in_1
    size: 2
  - direction: output
    name: out_0
    size: 4
  children:
  - name: subroutine_1
    ports:
    - direction: input
      name: in_0
      size: 2
    - direction: output
      name: out_0
      size: 3
  - name: subroutine_2
    ports:
    - direction: input
      name: in_0
      size: 2
    - direction: output
      name: out_0
      size: 1
    - direction: output
      name: out_1
      size: 1
  - name: merge
    ports:
    - direction: input
      name: in_0
      size: 1
    - direction: input
      name: in_1
      size: 1
    - direction: input
      name: in_2
      size: 2
    - direction: output
      name: out_0
      size: 4
  connections:
  - source: in_0
    target: subroutine_1.in_0
  - source: in_1
    target: subroutine_2.in_0
  - source: subroutine_1.out_0
    target: merge.in_2
  - source: subroutine_2.out_0
    target: merge.in_0
  - source: subroutine_2.out_1
    target: merge.in_1
  - source: merge.out_0
    target: out_0

For full description of QREF format, check our docs.

Using QREF package

Using JSON schema for validating data in QREF format

JSON schema for QREF format can be obtained by calling generate_program_schema function. Such schema can be then used for validating user's input, e.g. using jsonschema package:

from jsonschema import validate
from qref import generate_program_schema

# Hypothetical function loading your data as native Python dictionary.
data = load_some_program()
schema = generate_program_schema()

# This will raise if there are some validation errors.
validate(schema, data)

Validation using Pydantic models

If you are familiar with Pydantic, you might find it easier to work with QREF Pydantic models instead of interacting with JSON schema directly. In the example below, we create an instance of SchemaV1 model from validated data stored in QREF format:

from qref import SchemaV1

data = load_some_program()

# This will raise if data is not valid
program = SchemaV1.model_validate(data)

Development

In order to install development environment or build documentation locally, please refer to Development Guide.

Documentation

Documentation for qref can be found here.

To run docs locally install it with docs option: pip install ".[docs]" (or poetry install --with docs) and then run mkdocs serve.

Metadata

Release files for qref 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qref 0.11.0
File Size Uploaded Provenance Actions
qref-0.11.0.tar.gz 15.8 kB With provenance Details for qref-0.11.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for qref 0.11.0
File Interpreter ABI Platform Actions
qref-0.11.0-py3-none-any.whl Python 3 none any Details for qref-0.11.0-py3-none-any.whl

Total release size: 34.4 kB

Release files / qref-0.11.0.tar.gz

Download URL qref-0.11.0.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
eb0752ec7801a94228aa978377f012207a258351662557a8d43218a7a90df4b6
BLAKE2b-256 checksum
How to use checksums
6a55dbab6fcd20cf5635c170d1ecc86e77f27348b87dd27e327e089ae7c37c36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 8, 2025.

Transparency log

Release files / qref-0.11.0-py3-none-any.whl

Download URL qref-0.11.0-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fc3ef2984d1d2fa1d8cf7322f2749521c2052e1143b531cfe5b8edf79b8b1044
BLAKE2b-256 checksum
How to use checksums
6d08ad5afb5b17c33e57f34189cebbc9b5435914b5cf7cb9fe17a6b65469d8c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 8, 2025.

Transparency log

Security for qref 0.11.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for qref-0.11.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 8, 2025.

Transparency log

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page