Curated list of open-source developed quantum software projects.
Please read the contribution guidelines before contributing.
- Quantum full-stack libraries
- Quantum simulators
- Quantum annealing
- Quantum games
- Quantum algorithms
- Quantum compilers
- Quantum assembly
- Quantum cryptography
- Experimental quantum computing
- Quantum tools
- Abandoned projects
Python
- QISKit - IBM's quantum information software kit for simulating, compiling and executing quantum programs.
- Strawberry Fields - Xanadu's software library for photonic quantum computing.
- Forest - Rigetti's software library for writing, simulating, compiling and executing quantum programs.
- ProjectQ - Hardware-agnostic quantum software framework with compiler and simulator with emulation capabilities.
Q#
- Q# - Microsoft's quantum programming language with Visual Studio integration.
C++
Python
- Quantum Virtual Machine - Reference implementation of Rigetti's Quantum Virtual Machine.
- QuTiP - User-friendly and efficient numerical simulations of a wide variety of Hamiltonians.
- QTop - Simulation and visualization of topological quantum computers.
- PySimulator - Python with C++ backend simulator for superconducting circuits.
- QGL - Domain-specific language embedded in python for specifying quantum gate sequences.
- Quintuple - Simulating the 5-qubit processor of the IBM Quantum Experience.
- QuSim - Ideal noise-free multi-qubit simulator written in 150 lines of code.
C++
- Quantum++ - High-performance general purpose quantum simulator (can simulate d-dimensional qudits).
- QCL - High level, hardware-agnostic programming language for quantum computers (syntax like C or Pascal).
C
- QuaC - Parallel time-dependent open quantum systems solver.
Java
- libQuantumJava - Crude translation from the C implementation of
libquantum
to a Java version.
JavaScript
- jsquil - JavaScript interface for writing Quil programs.
- Quirk - Drag-and-drop quantum circuit simulator in your browser.
Haskell
- Quipper - Scalable functional programming language for quantum computing based on Quantum Lambda Calculus.
Rust
- QCGPU - High-performance GPU-accelerated quantum computer simulation outlined in this arXiv paper.
Julia
- QuantumInfo.jl - Julia library for quantum information related calculations.
- QSimulator.jl - Unitary and Lindbladian evolution in Julia.
- RandomQuantum.jl - Package for generating random quantum states and processes.
- Cliffords.jl - Efficient calculation of Clifford circuits in Julia.
Common Lisp
- BLACK-STONE - Specification and implementation of quantum common lisp, for gate-model quantum computers.
Qumin
- Qlmp - Interpreter for the functional quantum programming language Qumin.
F#
- Liqui|> - Toolsuite for quantum simulation developed by Microsoft QuArC.
OCaml
- QOCS - Quantum OCaml Circuit Simulator is a functional approach to simulating quantum gates.
Mathematica
- QuantumUtils - Tools for quantum control, simulation, channel representation conversion, and perturbations.
Python, C & Matlab
Python
- dwave_networkx - Exploration and analysis of network graphs.
- dimod - Shared API for Ising and QUBO problems.
- sapi_dimod - Dimod wrapper for D-Wave's Solver API (SAPI).
- micro_client_sapi_dimod - Dimod wrapper for the D-Wave Micro Client.
- minorminor - Heuristic tool for minor graph embedding.
- penaltymodel - Utilities and interfaces for using penalty models.
- penaltymodel_maxgap - Generates penalty models with smt solves. Factory & Cache for penaltymodel.
- embedding_utilities - Mapping samples between original and embedded graph.
- dwave-system - Incorporating D-Wave quantum annealers as samplers in the D-Wave Ocean (?) software stack.
- dwave-cloud-client - Min. implementation of the REST interface to communicate with D-Wave's Solver API.
- chimera_embedding - Algorithms to generate native-structured embeddings for Chimera graphs.
C++
- Virtual Hardware Embedding - Virtual Hardware Embedding Suite for adiabatic quantum computing.
Python
- Quantum Awesomeness - Simple puzzles to benchmark various quantum processor.
- Quantum Battleships - Playing battleships with quantum measurements.
Board games
- Entanglion - The world’s first open source quantum computing board game. For 2 players.
Python
- Grove - Quantum algorithms implemented using Rigetti's pyQuil.
- QISKit Tutorial - Jupyter notebook filled with tutorials for QISKit.
- OpenFermion - Compiling and analyzing quantum algorithm for quantum chemistry simulations.
- XACC Examples - Example code using XACC for quantum computing.
- XACC QChem - QPU Benchmarks for Quantum Chemistry via XACC, Psi4 and OpenFermion.
- Adapt - Algorithms for adaptive refinement of measurements.
- QFog - Tools for analyzing both classical and quantum Bayesian Networks.
Julia
- QuantumTomography.jl - Julia package to perform quantum state and process tomography.
C++
- XACC VQE - Distributed Variational Quantum Eigensolver built on XACC for solving electronic structure problems.
C++
- Qubiter - Quantum compiler using CS Decomposition to build a binary tree of matrices.
- pQCS - Parallel quantum circuit synthesis with optimal T-count.
- ScaffCC - Compilation, analysis and optimization framework for the Scaffold quantum programming language.
Python
- QGL2 Compiler - Language compiler for imperative Quantum Gate Language (QGL).
Julia
- Quil - An open hybrid quantum/classical instruction set currently used by Rigetti. Parser
- OpenQASM - IBM's open-source quantum assembly language.
- QMASM - A quantum macro assembler for D-Wave's quantum annealers.
C
- liboqs - C library for quantum-resistant cryptographic algorithms.
- openssh - OpenSSH with quantum-safe key exchange algorithms.
- openssl - OpenSSL with quantum-safe cryptographic algorithms.
Python
- Quince - Node-based GUI that allows for graphical configuration of qubit experiments in Auspex.
- PyQLab - Library for instrument control and superconducting QIP experiments.
- ARTIQ - Next-generation control system for quantum information experiments.
Matlab
- Qlab - Measurement and control software for superconducting qubits.
Julia
- Qlab.jl - Generic lab tools in Julia.
Python
- IBM Q bot - Bot for Slack and Telegram to monitor the load of IBM Q quantum computers.
2+ years of inactivity. Feel free to reanimate, document and contribute to some of this work!
- QACG - Quantum Arithmetic Circuit Generator in Haskell.
- QCViewer - A visual quantum circuit design and simulation tool.
- libquantum - C library for quantum computing and quantum simulation.
- Squankum - Visual Java quantum simulator.
See the contribution guidelines.
To the extent possible under law, Mark Fingerhuth has waived all copyright and related or neighboring rights to this work.