Skip to content

Benchmarks and analysis

Qualtran

Maintained by quantumlib

<div align="center"> <img alt="Qualtran logo" width="340px" src="https://raw.githubusercontent.com/quantumlib/Qualtran/refs/heads/main/docs/_static/qualtran-logo-mode-sensitive.svg"> <br>

PythonApache-2.0vpy311
Qualtran illustration

Resource snapshot

Category

Benchmarks and analysis

Stars

349

Last pushed

May 22, 2026Updated 3mo ago

Open issues

266

What it is

Qualtran is maintained by quantumlib and sits in the Benchmarks and analysis lane of the open-source quantum map.

<div align="center"> <img alt="Qualtran logo" width="340px" src="https://raw.githubusercontent.com/quantumlib/Qualtran/refs/heads/main/docs/_static/qualtran-logo-mode-sensitive.svg"> <br> It commonly appears alongside quantumlib-cirq, xanaduai-pennylane, quantumlib-openfermion in example workflows.

Last verified by Qtangl generator on May 27, 2026

Who it's for

Researchers and evaluators comparing toolchains, algorithms, hardware assumptions, or performance tradeoffs.

What you can build or learn

  • Learn what this project measures and why it matters.
  • Compare benchmarking assumptions instead of taking headline claims at face value.
  • Use the resource to evaluate ecosystems more critically.

Code samples

Examples from the repository.

1-Wiring-Up (tutorials/quantum-programming/1-wiring-up.ipynb)
# Quantum program 1
# This program does nothing
# 
# Registers:
#   x: an 8-bit signed quantum integer

from qualtran import BloqBuilder
from qualtran import QInt

# Start program construction
bb = BloqBuilder()

# Add input/output registers named 'x'
x = bb.add_register('x', QInt(8))

do_nothing = bb.finalize(x=x)
2-Bloqs (tutorials/quantum-programming/2-bloqs.ipynb)
# Quantum program 2
# Negate a quantum integer
# 
# Registers:
#   x: an 8-bit signed quantum integer

from qualtran import BloqBuilder
from qualtran import QInt

from qualtran.bloqs.arithmetic import BitwiseNot, AddK

# Set up input/output registers named 'x'
bb = BloqBuilder()
x = bb.add_register('x', QInt(8))

# Do the sub-operations
x = bb.add(BitwiseNot(QInt(8)), x=x)
x = bb.add(AddK(QInt(8), k=1), x=x)

# Finish up
negate = bb.finalize(x=x)

import qualtran.testing as qlt_testing
qlt_testing.assert_valid_cbloq(negate)
3-Addressing-Bits (tutorials/quantum-programming/3-addressing-bits.ipynb)
# Quantum program: QIntSwap
# This program swaps two 4-bit integers, x <--> y.
# 
# Registers:
#   x: an 8-bit quantum integer
#   y: an 8-bit quantum integer

# Start writing our program.
from qualtran import BloqBuilder
from qualtran import QInt, QBit
bb = BloqBuilder()

# Add input/output registers named 'x' and 'y'.
n = 4
x = bb.add_register('x', QInt(n))
y = bb.add_register('y', QInt(n))

# Split integers into their individual bits
xs = bb.split(x)
ys = bb.split(y)

from qualtran.bloqs.basic_gates import TwoBitSwap
for i in range(n):
    xs[i], ys[i] = bb.add(TwoBitSwap(), x=xs[i], y=ys[i])

# Join bits back to a quantum integer
x = bb.join(xs, QInt(n))
y = bb.join(ys, QInt(n))

# Finish up: map final soquets to output register names.
swap_routine = bb.finalize(x=x, y=y)

Citation

BibTeX
@software{qualtran,
  title = {Qualtran},
  author = {Unknown},
  year = {2025},
}

License

Apache-2.0

SPDX identifier detected from the repository metadata or license files.

Repository README

Preview from the project README.

Rendered as Markdown inside a scrollable preview. Long READMEs stay contained; expand or open on GitHub for the full document.

~616 words · about 3 min readOpen on GitHub

Python package for fault-tolerant quantum algorithms research.

Installation – Usage – Documentation – Community – Citation – Contact

Qualtran is a set of abstractions for representing quantum programs and a library of quantum algorithms expressed in that language to support quantum algorithms research.

Installation

Qualtran is being actively developed. We recommend installing from the source code.

The following commands will clone a copy of the repository, then install the Qualtran package in your local Python environment as a local editable copy:

git clone https://github.com/quantumlib/Qualtran.git
cd Qualtran/
pip install -e .

You can also install the latest tagged release using pip:

pip install qualtran

You can also install the latest version of the main branch on GitHub:

pip install git+https://github.com/quantumlib/Qualtran

Usage

[!WARNING] Qualtran is an experimental preview release. We provide no backwards compatibility guarantees. Some algorithms or library functionality may be incomplete or contain inaccuracies. Open issues or contact the authors with bug reports or feedback.

You should be able to import the qualtran package into your interactive Python environment as as well as your programs:

import qualtran

If this is successful, you can move on to learning how to write bloqs or investigate the bloqs library.

Documentation

Documentation is available at https://qualtran.readthedocs.io/.

Community

Qualtran's community is growing rapidly, and if you'd like to join the many open-source contributors to the Qualtran project, we welcome your participation! We are dedicated to cultivating an open and inclusive community, and have a code of conduct.

Announcements

You can stay on top of Qualtran news using the approach that best suits your needs:

Questions and Discussions

  • If you'd like to ask questions and participate in discussions, join the qualtran-dev group/mailing list. By joining qualtran-dev, you will also get automated invites to the biweekly Qualtran Sync meeting (below).

  • Would you like to get more involved in Qualtran development? The biweekly Qualtran Sync is a virtual face-to-face meeting of contributors to discuss everything from issues to ongoing efforts, as well as to ask questions. Become a member of qualtran-dev to get an automatic meeting invitation!

Issues and Pull Requests

Citation

When publishing articles or otherwise writing about Qualtran, please cite the following:

@misc{harrigan2024qualtran,
    title={Expressing and Analyzing Quantum Algorithms with Qualtran},
    author={Matthew P. Harrigan and Tanuj Khattar
        and Charles Yuan and Anurudh Peduri and Noureldin Yosri
        and Fionn D. Malone and Ryan Babbush and Nicholas C. Rubin},
    year={2024},
    eprint={2409.04643},
    archivePrefix={arXiv},
    primaryClass={quant-ph},
    doi={10.48550/arXiv.2409.04643},
    url={https://arxiv.org/abs/2409.04643},
}

Contact

For any questions or concerns not addressed here, please email quantum-oss-maintainers@google.com.

Disclaimer

This is not an officially supported Google product. This project is not eligible for the Google Open Source Software Vulnerability Rewards Program.

Copyright 2025 Google LLC.

Read on GitHub

Activity

Latest release

—

Watchers

23

Python support

>=3.11

Key dependencies

attrs, cachetools, typing_extensions, networkx, numpy, sympy, cirq-core, fxpmath, galois, notebook, nbconvert, nbformat

Learn digest

Get monthly updates when library entries change.

Monthly digest: new library entries, updated flagships, and one editorial pick.

Related resources

Keep exploring nearby tools.

quantumlib

Cirq

Python framework for creating, editing, and running Noisy Intermediate-Scale Quantum (NISQ) circuits.

PythonApache-2.0Flagship

4,971 stars · Updated 3mo ago

cda-tum

mqt-bench

MQT Bench - An MQT Tool for Benchmarking Quantum Software Tools

PythonMIT

118 stars · Updated 3mo ago

XanaduAI

pennylane

PennyLane is an open-source quantum software platform for quantum computing, quantum machine learning, and quantum chemistry.

PythonApache-2.0FlagshipQtangl relevant

3,229 stars · Updated 3mo ago

QISKit

qiskit

Qiskit is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.

PythonApache-2.0FlagshipQtangl relevant

7,412 stars · Updated 3mo ago

BBN-Q

QSimulator.jl

Unitary and Lindbladian evolution in Julia

JuliaApache-2.0

28 stars · Updated 4y ago

Microsoft

QuantumKatas

Tutorials and programming exercises for learning Q# and quantum computing

Jupyter NotebookMITFlagshipArchive

4,862 stars · Updated 2y ago