List of Open Quantum Projects

Mirror of the curated list of open source developed quantum software projects hosted on QOSF’s GitHub page.

Sign up for the newsletter Join our Slack Donate to QOSF   

Quantum full-stack libraries

Braket

Amazon’s fully managed quantum computing service for building quantum algorithms.

Cirq

Framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.

Forest

Rigetti’s software library for writing, simulating, compiling and executing quantum programs.

Ocean

D-Wave System’s suite of tools for solving hard problems with quantum computers.

OpenQL

Compiler framework with algorithm libraries, optimizer, scheduler, QEC, mapping, micro-code generator.

ProjectQ

Hardware-agnostic framework with compiler and simulator with emulation capabilities.

Q#

Microsoft’s quantum programming language with Visual Studio integration.

Qiskit

Framework for noisy quantum computers at the level of pulses, circuits, and algorithms (supported by IBM).

Silq

Silq is a high-level quantum programming language with safe uncomputation and intuitive semantics.

Strawberry Fields

Xanadu’s software library for photonic quantum computing.

Tequila

An Extensible Quantum Information and Learning Architecture developed by Alan Aspuru-Guzik’s group (UofT).

XACC

Extreme-scale programming model for quantum acceleration within high-performance computing.

staq

Full stack quantum processing toolkit.

Quantum simulators

BLACK-STONE

Specification and implementation of quantum common lisp, for gate-model quantum computers.

Cliffords.jl

Efficient calculation of Clifford circuits in Julia.

Intel Quantum Simulator

Distributed qubit register quantum simulator using OpenMP and MPI.

JKQ-DDSIM

Error-free quantum simulator using decision diagrams as underlying data structure. (arXiv / IEEE)

Liqui|>

Toolsuite for quantum simulation developed by Microsoft QuArC.

PIQS

Efficient simulation of open quantum dynamics of identical qubits.

QCGPU

High-performance GPU-accelerated quantum computer simulation outlined in this arXiv paper.

QCL

High level, hardware-agnostic programming language for quantum computers (syntax like C or Pascal).

QCircuits

User-friendly quantum circuit simulator designed for students and newcomers to quantum computing.

QOCS

Quantum OCaml Circuit Simulator is a functional approach to simulating quantum gates.

QSimulator.jl

Unitary and Lindbladian evolution in Julia.

QTop

Simulation and visualization of topological quantum computers.

QVM

Rigetti’s high-performance quantum virtual machine.

QWIRE

A quantum circuit language and formal verification tool described in this paper.

Qibo

Framework for quantum simulation with hardware acceleration, including multi-GPU support.

Qiskit Aer

High performance simulator for quantum circuits that includes noise models (supported by IBM).

Qlmp

Interpreter for the functional quantum programming language Qumin.

Qrack

Comprehensive qubit and gate implementation for developing universal virtual quantum processors.

QuEST

Quantum Exact Simulation Toolkit is a high performance multicore simulator of universal quantum circuits.

QuNetSim

A quantum network simulation framework.

QuPy

Quantum circuit simulator for both CPU and GPU.

QuSim

Ideal noise-free multi-qubit simulator written in 150 lines of code.

QuSpin

Exact diagonalization and dynamics of arbitrary boson, fermion and spin many-body systems.

QuTiP

User-friendly and efficient numerical simulations of a wide variety of open quantum systems.

QuaC

Parallel time-dependent open quantum systems solver.

Quantum Circuit Simulator

Smoothly runs 20+ qubit simulations in browser or on node.js server.

Quantum JavaScript (Q.js)

Drag-and-drop circuit editor, simulator, documented API, text-as-circuit DSL, concept primers.

Quantum Virtual Machine

Reference implementation of Rigetti’s Quantum Virtual Machine.

Quantum++

High-performance general purpose quantum simulator (can simulate d-dimensional qudits).

QuantumInfo.jl

Julia library for quantum information related calculations.

QuantumUtils

Tools for quantum control, simulation, channel representation conversion, and perturbations.

Quintuple

Simulating the 5-qubit processor of the IBM Quantum Experience.

Quipper

Scalable functional programming language for quantum computing based on Quantum Lambda Calculus.

Quirk

Drag-and-drop quantum circuit simulator in your browser.

RandomQuantum.jl

Package for generating random quantum states and processes.

SQUANCH

A distributed simulation framework for quantum networks and channels.

SeQuencing

Construct and simulate realistic quantum control sequences using QuTiP.

SimulaQron

Application level simulator of a quantum network.

SwiftQuantumComputing

Quantum circuit simulator with a bit of genetic programming.

TNQVM

Tensor Network QPU Simulator for Eclipse XACC.

Yao.jl

Extensible, Efficient Quantum Algorithm Design for Humans.

jquil

A Java library for quantum programming using Quil.

jsquil

JavaScript interface for writing Quil programs.

libQuantumJava

Crude translation from the C implementation of libquantum to a Java version.

qSim

High level, elementary simulation library.

Quantum annealing

C-to-D-Wave

Compile a very small subset of C to a D-Wave Hamiltonian function

QA Prolog

Compile a subset of Prolog to a D-Wave Hamiltonian function

QMASM

Quantum macro assembler for D-Wave systems

Qbsolv

QUBO solver with D-Wave or classical tabu solver backend.

Virtual Hardware Embedding

Virtual Hardware Embedding Suite for adiabatic quantum computing.

chimera_embedding

Algorithms to generate native-structured embeddings for Chimera graphs.

dimod

Shared API for Ising and QUBO problems.

dwave-cloud-client

Min. implementation of the REST interface to communicate with D-Wave’s Solver API.

dwave-system

API for easily incorporating D-Wave quantum annealers as samplers in the Ocean software stack.

dwave_neal

An implementation of a simulated annealing sampler.

dwave_networkx

Exploration and analysis of network graphs.

dwavebinarycsp

Map constraint satisfaction problems with binary variables to binary quadratic models.

edif2qmasm

Compile Verilog, VHDL, and other hardware-description languages to a D-Wave Hamiltonian function

embedding_utilities

Mapping samples between original and embedded graph.

micro_client_sapi_dimod

Dimod wrapper for the D-Wave Micro Client.

minorminer

Heuristic tool for minor graph embedding.

penaltymodel

Utilities and interfaces for using penalty models.

sapi_dimod

Dimod wrapper for D-Wave’s Solver API (SAPI).

Quantum algorithms

Adapt

Algorithms for adaptive refinement of measurements.

Arline Quantum

Library with implementation of quantum gates and hardware, a part of Arline Benchmarks project.

FermiLib

Software for analyzing fermionic quantum simulation algorithms with ProjectQ.

Grove

Quantum algorithms implemented using Rigetti’s pyQuil.

OpenFermion

Compiling and analyzing quantum algorithm for quantum chemistry simulations.

PennyLane

Library for quantum ML, automatic differentiation and optimization of hybrid computations.

QFog

Framework for analyzing both classical and quantum Bayesian Networks.

Qiskit Nature

Qiskit component for chemistry and physics problems including ground state energy computations, excited states and dipole moments of molecule, both open and closed-shell.

Qiskit Optimization

Qiskit component that covers the whole range from high-level modeling of optimization problems.

Qiskit Machine Learning

Qiskit component that contains classification algorithms such as QSVM and VQC (Variational Quantum Classifier). There is also QGAN (Quantum Generative Adversarial Network)

Qiskit Finance

Qiskit component that contains uncertainty components for stock/securities problems, Ising translators for portfolio optimizations and data providers to source real or random data to finance experiments.

Qiskit Tutorial

Jupyter notebook filled with tutorials for Qiskit.

Quantum Katas

Programming exercises for learning Q# and quantum computing.

Quantum TSP

Tutorials on solving Travelling Salesman Problem using quantum computing (QAOA).

QuantumFlow

Quantum Algorithms Development Toolkit e.g. allowing for backpropagation with QAOA.

QuantumTomography.jl

Julia package to perform quantum state and process tomography.

Quantum_Edward

Python tools for supervised learning by Quantum Neural Networks

VQF

Implementation of Variational Quantum Factoring algorithm (in pyQuil)

XACC Examples

Example code using XACC for quantum computing.

XACC QChem

QPU Benchmarks for Quantum Chemistry via XACC, Psi4 and OpenFermion.

XACC VQE

Variational quantum eigensolver built on XACC for distributed, and shared memory systems.

Quantum compilers

Arline Benchmarks

Automated benchmarking platform for quantum compilers, quantum hardware and quantum algorithms.

Mitiq

Cross-platform, error-mitigating quantum compiler from Unitary Fund.

PyZX

Python library for quantum circuit rewriting and optimisation using the ZX-calculus.

QGL.jl

A performance orientated QGL compiler.

QGL2 Compiler

Language compiler for imperative Quantum Gate Language (QGL).

Qiskit Terra

Python library for quantum circuit rewriting and optimization (supported by IBM).

Qubiter

Quantum compiler with Python wrapper for LAPACK’s CS Decomposition to build a binary tree of matrices.

ScaffCC

Compilation, analysis and optimization framework for the Scaffold quantum programming language.

UniversalQCompiler

Synthesis of isometries (including unitaries and state preparation), channels and POVMs.

quilc

Rigetti’s optimizing Quil compiler.

Quantum assembly

Blackbird

Open-source quantum instruction language currently used for Xanadu’s photonic hardware.

OpenQASM

Open-source quantum assembly language.

QMASM

A quantum macro assembler for D-Wave’s quantum annealers.

Quil

An open hybrid quantum/classical instruction set currently used by Rigetti. Parser

Quantum and post-quantum cryptography

QRL

Quantum Resistant Ledger utilizing hash-based one-time merkle tree signature scheme instead of ECDSA.

liboqs

C library for quantum-resistant cryptographic algorithms.

openssh

OpenSSH with quantum-safe key exchange algorithms.

openssl

OpenSSL with quantum-safe cryptographic algorithms.

Experimental quantum computing

ARTIQ

Next-generation control system for quantum information experiments.

PyQLab

Library for instrument control and superconducting QIP experiments.

QFlow-lite

Machine Learning tools for autotuning quantum dot experiments.

QGL

Domain-specific language embedded in Python for specifying pulse sequences.

Qlab

Measurement and control software for superconducting qubits.

Qlab.jl

Generic lab tools in Julia.

Quince

Node-based GUI that allows for graphical configuration of qubit experiments in Auspex.

qupulse

Quantum computing pulse parametrization and sequencing framework (formerly qc-toolkit).

Quantum fun

Entanglion

The world’s first open source quantum computing board game. For 2 players.

QSEL

Quantum programming language putting entanglement and superposition front and center.

Quantum Awesomeness

Simple puzzles to benchmark various quantum processor.

Quantum Battleships

Playing battleships with quantum measurements.

Quantum Catsweeper

Quantum game loosely based on Minesweeper Flag.

Quantum Game with Photons

Puzzle game in browser, with polarization, superposition, and measurement.

Quantum Music Composer for IBM Q

Compose and perform quantum music with IBM Q.

Quantum Music Composer for Rigetti

Compose and perform quantum music with Rigetti’s Forest.

SudoQ

Sudoku solver that leverages a D-Wave Quantum Annealer.

bloqit

A tiny qubit duel for your smart phone.

feyn

Puzzle game for the browser in which you need to find the combination of gates that the qubits need to pass.

Quantum tools

IBM Q bot

Bot for Slack and Telegram to monitor the load of IBM Q quantum computers.

QI

Toolkit for common quantum information functions.

QuantumGraphs

Grow and study random graphs by a continuous, randomly collapsing quantum walk.

Quil syntax highlighter

Syntax highlighter for PyCharm.

toqito

Framework to study problems pertaining to entanglement theory, nonlocal games, and other aspects of quantum information.

Abandoned projects

PySimulator

Python with C++ backend simulator for superconducting circuits.

QACG

Quantum Arithmetic Circuit Generator in Haskell.

QCViewer

A visual quantum circuit design and simulation tool.

Qiskit-JS

Quantum information software kit for JavaScript (supported by IBM).

Squankum

Visual Java quantum simulator.

libquantum

C library for quantum computing and quantum simulation.

pQCS

Parallel quantum circuit synthesis with optimal T-count.