Curated list of open-source quantum software projects.
Curated list of open-source developed quantum software projects.
Please read the contribution guidelines before contributing.
Also please check out the Unitary Fund's 4k$ grant project for quantum OSS!
For a curated list of learning resources please check out desireevl's repo.
Python - blueqat - A quantum computing SDK. - 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. - quantumcat - Cross-platform open-source high-level quantum computing library focused on building applications. - Qiskit - Framework for noisy quantum computers at the level of pulses, circuits, and algorithms (supported by IBM). - 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).
Q# - Q# - Microsoft's quantum programming language with Visual Studio integration.
Silq - Silq - Silq is a high-level quantum programming language with safe uncomputation and intuitive semantics.
C - QuaC - Parallel time-dependent open quantum systems solver. - QuEST - Quantum Exact Simulation Toolkit is a high performance multicore simulator of universal quantum circuits. - TNQVM - Tensor Network QPU Simulator for Eclipse XACC.
Common Lisp - QVM - Rigetti's high-performance quantum virtual machine.
C++ - Huawei HiQsimulator - Single-amplitude, Full-amplitude and Error-correction circuit simulation engine. - 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) - qFlex - Flexible high-performance simulator for verifying and benchmarking quantum circuits implemented on real hardware. - Qiskit Aer - High performance simulator for quantum circuits that includes noise models (supported by IBM). - QCEAD - C++ program to both simulate a quantum computer and use parallel evolutionary techniques to design algorithms. - Qrack - Comprehensive qubit and gate implementation for developing universal virtual quantum processors. - qSim - High level, elementary simulation library. - QSim - Schrödinger and Schrödinger-Feynman simulators for quantum circuits. - Quantum++ - High-performance general purpose quantum simulator (can simulate d-dimensional qudits). - tweedledum - Library for synthesis, compilation, and optimization of quantum circuits.
GoLang - Q - Quantum Computation Simulator written purely in GoLang.
Java - Strange - Java API that can be used to create Quantum Programs.
Julia - Cliffords.jl - Efficient calculation of Clifford circuits in Julia. - IonSim.jl - Simulate the dynamics of a configuration of trapped ions interacting with laser light. - QSimulator.jl - Unitary and Lindbladian evolution in Julia. - QuantumInfo.jl - Julia library for quantum information related calculations. - QuantumOptics.jl - Numerical framework to simulate various kinds of open quantum systems in Julia. - RandomQuantum.jl - Package for generating random quantum states and processes. - Yao.jl - Extensible, Efficient Quantum Algorithm Design for Humans.
Python - Interlin-q - Quantum network simulator imitating distributed quantum systems with interconnect communication between nodes. - MISTIQS - Generating/compiling/executing quantum circuits for simulating quantum many-body dynamics of systems. - PIQS - Efficient simulation of open quantum dynamics of identical qubits. - QCircuits - User-friendly quantum circuit simulator designed for students and newcomers to quantum computing. - QCompute - Baidu's software development kit for designing quantum circuits and simulating on a high-performance simulator. - Qibo - Framework for quantum simulation with hardware acceleration, including multi-GPU support. - QTop - Simulation and visualization of topological quantum computers. - quantum-computing - Functionally complete simulator for universal quantum computing in Python - quimb - Easy but fast python library for quantum information and many-body calculations, including with tensor networks. - Quintuple - Simulating the 5-qubit processor of the IBM Quantum Experience. - QuPy - Quantum circuit simulator for both CPU and GPU. - 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. - SeQuencing - Construct and simulate realistic quantum control sequences using QuTiP. - SimulaQron - Application level simulator of a quantum network. - Stim - A fast stabilizer circuit simulator. - SQUANCH - A distributed simulation framework for quantum networks and channels. - QuNetSim - A quantum network simulation framework. - The Walrus- Xanadu's library for simulating Gaussian Boson Sampling.
Rust - QCGPU - High-performance GPU-accelerated quantum computer simulation outlined in this arXiv paper. - RustQIP - Rust Quantum Computing library leveraging graph building to build efficient quantum circuit simulations.
Swift - SwiftQuantumComputing - Quantum circuit simulator with a bit of genetic programming.
C++ - C-to-D-Wave - Compile a very small subset of C to a D-Wave Hamiltonian function
Python - chimera_embedding - Algorithms to generate native-structured embeddings for Chimera graphs. - dimod - Shared API for Ising and QUBO problems. - dwavebinarycsp - Map constraint satisfaction problems with binary variables to binary quadratic models. - dwave-cloud-client - Min. implementation of the REST interface to communicate with D-Wave's Solver API. - dwave_neal - An implementation of a simulated annealing sampler. - dwave_networkx - Exploration and analysis of network graphs. - dwave-system - API for easily incorporating D-Wave quantum annealers as samplers in the Ocean software stack. - embedding_utilities - Mapping samples between original and embedded graph. - microclientsapi_dimod - Dimod wrapper for the D-Wave Micro Client. - minorminer - Heuristic tool for minor graph embedding. - penaltymodel - Utilities and interfaces for using penalty models. - QMASM - Quantum macro assembler for D-Wave systems - qubo-nn - Classifying, auto-encoding and reverse-engineering QUBO matrices. Also includes 20 problem formulations.
Julia - QuantumTomography.jl - Julia package to perform quantum state and process tomography.
Python - Adapt - Algorithms for adaptive refinement of measurements. - Arline Quantum - Library with implementation of quantum gates and hardware, a part of Arline Benchmarks project. - Boson Sampling - Library to calculate interferometer output probabilities given Fock state inputs to help better understand Aaronson-Arkhipov Boson Sampling arXiv:1011.3245 [quant-ph] - FermiLib - Software for analyzing fermionic quantum simulation algorithms with ProjectQ. - Grove - Quantum algorithms implemented using Rigetti's pyQuil. - G/SG Morph - Quantum annealing algorithms for Graph/Subgraph Isomorphism based on Calude et al.'s paper "QUBO formulations for the graph isomorphism problem and related problems" 10.1016/j.tcs.2017.04.016 - OpenFermion - Compiling and analyzing quantum algorithm for quantum chemistry simulations. - Paddle Quantum - Quantum machine learning platform to construct & train quantum neural networks, developed by Baidu. - PennyLane - Library for quantum ML, automatic differentiation and optimization of hybrid computations. - PyZFS - Package to compute zero-field-splitting tensors for molecules and spin quantum bits in semiconductors. - QFog - Framework for analyzing both classical and quantum Bayesian Networks. - QGrad - Library to integrate automatic differentiation tools such as JAX with QuTiP and related quantum software packages. - Qiskit Aqua - Library of various quantum algorithm implemented with Qiskit. - Qiskit Nature - Quantum Chemistry including ground state, excited states and dipole moment calculations. - QPanda - QPanda is a quantum computing framework that can be used to build, run, and optimize quantum algorithms. - Qiskit Tutorial - Jupyter notebook filled with tutorials for Qiskit. - Quantum_Edward - Python tools for supervised learning by Quantum Neural Networks - QuantumFlow - Quantum Algorithms Development Toolkit e.g. allowing for backpropagation with QAOA. - Quantum TSP - Tutorials on solving Travelling Salesman Problem using quantum computing (QAOA). - Tensorflow Quantum - Library for hybrid quantum-classical machine learning. - VQF - Implementation of Variational Quantum Factoring algorithm (in pyQuil) - WebMark - Web platform for benchmarking quantum computing algorithms. - XACC Examples - Example code using XACC for quantum computing. - XACC QChem - QPU Benchmarks for Quantum Chemistry via XACC, Psi4 and OpenFermion.
Q# - Quantum Katas - Programming exercises for learning Q# and quantum computing.
C++ - QCOR - C++ language extension and associated compiler implementation for hybrid quantum-classical programming. - ScaffCC - Compilation, analysis and optimization framework for the Scaffold quantum programming language. - tweedledum - C++17 library for analysis, compilation/synthesis, and optimization of quantum circuits.
Mathematica - UniversalQCompiler - Synthesis of isometries (including unitaries and state preparation), channels and POVMs.
Python - Arline Benchmarks - Automated benchmarking platform for quantum compilers, quantum hardware and quantum algorithms. - BQSKit - Berkeley Quantum Synthesis Toolkit is an optimizing quantum compiler and related tool-set. - Mitiq - Cross-platform, error-mitigating quantum compiler from Unitary Fund. - PyZX - Python library for quantum circuit rewriting and optimisation using the ZX-calculus. - QEDA - Quantum electronic design automation software for optical circuits using QASM. - 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.
Common Lisp - quilc - Rigetti's optimizing Quil compiler.
Python - PyMatching - Python package for decoding quantum error correcting codes with minimum-weight perfect matching. - qecsim - Python package for simulating quantum error correction using stabilizer codes. - Qsurface - Python package for simulation and visualization of quantum error-correction on surface codes.
C - liboqs - C library for quantum-resistant cryptographic algorithms. - openssh - OpenSSH with quantum-safe key exchange algorithms. - openssl - OpenSSL with quantum-safe cryptographic algorithms. - PQClean - Clean, portable, tested implementations of post-quantum cryptography.
Julia - Qlab.jl - Generic lab tools in Julia.
Matlab - Qlab - Measurement and control software for superconducting qubits.
Python - ARTIQ - Next-generation control system for quantum information experiments. - OLSQ - OpenQASM package to perform optimal layout synthesis for quantum computing. - pyEPR - Automated Python module for the design and quantization of Josephson quantum circuits. - PyRPL - Turn your RedPitaya into a powerful DSP device, suitable as a digital lockbox and measurement device in quantum optics. - QCoDeS - Python-based data acquisition framework for quantum experiments. - QFlow-lite - Machine Learning tools for autotuning quantum dot experiments. - QGL - Domain-specific language embedded in Python for specifying pulse sequences. - Qiskit Metal - Quantum hardware design and analysis. - QTT - Quantum Technology Toolbox is a framework for the tuning and calibration of quantum dots and spin qubits. - Quantify - Data acquisition platform focused on Quantum Computing and solid-state physics experiments. - qupulse - Quantum computing pulse parametrization and sequencing framework (formerly qc-toolkit). - scqubits - Simulating superconducting qubits, obtaining energy spectra, plotting energy levels and more.
Board games - Entanglion - The world’s first open source quantum computing board game. For 2 players.
F# - Quantum Puzzle Generator - An educational puzzle game for Android and iOS.
Python - bloqit - A tiny qubit duel for your smart phone. - QiskitBlocks - Game that teaches quantum computing using Qiskit in a Minetest block world. - 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. - SudoQ - Sudoku solver that leverages a D-Wave Quantum Annealer.
Scala - feyn - Puzzle game for the browser in which you need to find the combination of gates that the qubits need to pass.
Mathematica - Quantum - A free Mathematica add-on for Dirac Bra-Ket Notation, Quantum Algebra, Quantum Computing and the QHD approximation to the Heisenberg Equations of Motion. - QI - Toolkit for common quantum information functions.
Python - IBM Q bot - Bot for Slack and Telegram to monitor the load of IBM Q quantum computers. - orqviz - Library to easily visualize the loss landscape of variational quantum algorithms. - pulsemaker - A Python widget library for designing pulses and pulse schedules for quantum computing hardware. - pyQuirk - A Python widget for Quirk to be used in Jupyter notebooks, JupyterLab, and the IPython kernel. - qonduit - A Python library with visualization tools and workflows for quantum computing that utilize the best of what’s available. - qprof -
gprof-compatible profiler for quantum programs. - QRAND - A multiplatform and multiprotocol quantum random number generator for arbitrary probability distributions. - QuantumGraphs - Grow and study random graphs by a continuous, randomly collapsing quantum walk. - toqito - Framework to study problems pertaining to entanglement theory, nonlocal games, and other aspects of quantum information.
Others - Quil syntax highlighter - Syntax highlighter for PyCharm.
2+ years of inactivity. Feel free to reanimate, document and contribute to some of this work! - BLACK-STONE - Specification and implementation of quantum common lisp, for gate-model quantum computers. - libquantum - C library for quantum computing and quantum simulation. - libQuantumJava - Crude translation from the C implementation of
See the contribution guidelines.
To the extent possible under law, the Quantum Open Source Foundation has waived all copyright and related or neighboring rights to this work.