All Projects → qosf → Awesome Quantum Software

qosf / Awesome Quantum Software

Licence: cc0-1.0
Curated list of open-source quantum software projects.

Projects that are alternatives of or similar to Awesome Quantum Software

Openfermion
The electronic structure package for quantum computers.
Stars: ✭ 1,099 (+69.86%)
Mutual labels:  quantum-algorithms, quantum-computing, quantum-chemistry
OpenFermion-PySCF
OpenFermion plugin to interface with the electronic structure package PySCF.
Stars: ✭ 76 (-88.25%)
Mutual labels:  quantum-computing, quantum-chemistry, quantum-algorithms
Openfermion Psi4
OpenFermion plugin to interface with the electronic structure package Psi4.
Stars: ✭ 63 (-90.26%)
Mutual labels:  quantum-algorithms, quantum-computing, quantum-chemistry
Openfermion Cirq
Quantum circuits for simulations of quantum chemistry and materials.
Stars: ✭ 258 (-60.12%)
Mutual labels:  quantum-algorithms, quantum-computing, quantum-chemistry
Pytket
Python module for interfacing with the CQC t|ket> library of quantum software
Stars: ✭ 162 (-74.96%)
Mutual labels:  compilers, quantum-algorithms, quantum-computing
unitaryhack
Rules and information for the 2021 unitaryHACK event hosted by @unitaryfund
Stars: ✭ 16 (-97.53%)
Mutual labels:  quantum-computing, quantum-algorithms
Quantum-Computing-Resources
This repository contains the best resources for learning practical quantum computing. This repository will be updated frequently.
Stars: ✭ 60 (-90.73%)
Mutual labels:  quantum-computing, quantum-algorithms
learn-qc-with-python-and-qsharp
Companion code for Learn Quantum Computing with Python and Q# Book by Dr. Sarah Kaiser and Dr. Chris Granade 💖
Stars: ✭ 62 (-90.42%)
Mutual labels:  quantum-computing, quantum-algorithms
launchpad
Resources to get started in Quantum Computing!
Stars: ✭ 21 (-96.75%)
Mutual labels:  quantum-computing, quantum-algorithms
quantumcat
quantumcat is a platform-independent, open-source, high-level quantum computing library, which allows the quantum community to focus on developing platform-independent quantum applications without much effort.
Stars: ✭ 18 (-97.22%)
Mutual labels:  quantum-computing, quantum-algorithms
Quantum-Computing-UK-Repository
This repository contains all of the code found in the quantum computing tutorials at : https://quantumcomputinguk.org.
Stars: ✭ 52 (-91.96%)
Mutual labels:  quantum-computing, quantum-algorithms
qibo
A framework for quantum computing with hardware acceleration.
Stars: ✭ 120 (-81.45%)
Mutual labels:  quantum-computing, quantum-algorithms
Quantum-Machine-Learning
This repository contains implementations of Quantum Machine Learning algorithms, feature maps, variational circuits and research papers.
Stars: ✭ 47 (-92.74%)
Mutual labels:  quantum-computing, quantum-algorithms
cusp cirq demo
Demonstration of CUSP algorithm using Cirq
Stars: ✭ 35 (-94.59%)
Mutual labels:  quantum-computing, quantum-algorithms
Quantum-Computer-Simulator-with-Algorithms
C++ simulator of quantum registers and quantum algorithms
Stars: ✭ 15 (-97.68%)
Mutual labels:  quantum-computing, quantum-algorithms
cirq-on-iqm
Cirq adapter for IQM's quantum computers
Stars: ✭ 21 (-96.75%)
Mutual labels:  quantum-computing, quantum-algorithms
Yao.jl
Extensible, Efficient Quantum Algorithm Design for Humans.
Stars: ✭ 514 (-20.56%)
Mutual labels:  quantum-algorithms, quantum-computing
Cirq
A python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
Stars: ✭ 3,115 (+381.45%)
Mutual labels:  quantum-algorithms, quantum-computing
Grove
Quantum algorithms built using pyQuil.
Stars: ✭ 332 (-48.69%)
Mutual labels:  quantum-algorithms, quantum-computing
QuantumCircuitOpt.jl
A Julia/JuMP Package for Optimal Quantum Circuit Design
Stars: ✭ 45 (-93.04%)
Mutual labels:  quantum-computing, quantum-algorithms

bDialog

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!

Contents

For a curated list of learning resources please check out desireevl's repo.

Quantum full-stack libraries

C++

Python

  • 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.
  • 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.

Quantum simulators

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

  • BLACK-STONE - Specification and implementation of quantum common lisp, for gate-model quantum computers.
  • QVM - Rigetti's high-performance quantum virtual machine.

Coq

C++

F#

Haskell

Java

  • jquil - A Java library for quantum programming using Quil.
  • libQuantumJava - Crude translation from the C implementation of libquantum to a Java version.

JavaScript

  • jsquil - JavaScript interface for writing Quil programs.
  • Quantum Circuit Simulator - Smoothly runs 20+ qubit simulations in browser or on node.js server.
  • Quirk - Drag-and-drop quantum circuit simulator in your browser.
  • Quantum JavaScript (Q.js) - Drag-and-drop circuit editor, simulator, documented API, text-as-circuit DSL, concept primers.

Julia

  • Cliffords.jl - Efficient calculation of Clifford circuits in Julia.
  • QSimulator.jl - Unitary and Lindbladian evolution in Julia.
  • QuantumInfo.jl - Julia library for quantum information related calculations.
  • RandomQuantum.jl - Package for generating random quantum states and processes.
  • Yao.jl - Extensible, Efficient Quantum Algorithm Design for Humans.

Mathematica

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

OCaml

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

Python

  • PIQS - Efficient simulation of open quantum dynamics of identical qubits.
  • QCircuits - User-friendly quantum circuit simulator designed for students and newcomers to quantum computing.
  • Qibo - Framework for quantum simulation with hardware acceleration, including multi-GPU support.
  • QTop - Simulation and visualization of topological quantum computers.
  • Quantum Virtual Machine - Reference implementation of Rigetti's Quantum Virtual Machine.
  • Quintuple - Simulating the 5-qubit processor of the IBM Quantum Experience.
  • 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.
  • SeQuencing - Construct and simulate realistic quantum control sequences using QuTiP.
  • SimulaQron - Application level simulator of a quantum network.
  • SQUANCH - A distributed simulation framework for quantum networks and channels.
  • QuNetSim- A quantum network simulation framework.

Qumin

  • Qlmp - Interpreter for the functional quantum programming language Qumin.

Rust

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

Swift

Quantum annealing

C++

Go

  • edif2qmasm - Compile Verilog, VHDL, and other hardware-description languages to a D-Wave Hamiltonian function
  • QA Prolog - Compile a subset of Prolog 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.
  • 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.
  • QMASM - Quantum macro assembler for D-Wave systems
  • sapi_dimod - Dimod wrapper for D-Wave's Solver API (SAPI).

Python, C & Matlab

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

Quantum algorithms

C++

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

Julia

Python

  • 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 Aqua - Library of various quantum algorithm implemented with Qiskit.
  • 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).
  • 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.

Q#

  • Quantum Katas - Programming exercises for learning Q# and quantum computing.

Quantum compilers

C++

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

Julia

  • QGL.jl - A performance orientated QGL compiler.

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.
  • Mitiq - Cross-platform, error-mitigating quantum compiler from Unitary Fund.
  • PyZX - Python library for quantum circuit rewriting and optimisation using the ZX-calculus.
  • 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.

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

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

Experimental quantum computing

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.
  • 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.
  • 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

Board games

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

F#

Python

Python & JavaScript

JavaScript

Scala

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

Quantum tools

Mathematica

  • 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.
  • toqito - Framework to study problems pertaining to entanglement theory, nonlocal games, and other aspects of quantum information.
  • QuantumGraphs - Grow and study random graphs by a continuous, randomly collapsing quantum walk.
  • qonduit - A Python library with visualization tools and workflows for quantum computing that utilize the best of what’s available.
  • pyQuirk - A Python widget for Quirk to be used in Jupyter notebooks, JupyterLab, and the IPython kernel.
  • pulsemaker - A Python widget library for designing pulses and pulse schedules for quantum computing hardware.

Others

Abandoned projects

2+ years of inactivity. Feel free to reanimate, document and contribute to some of this work!

Contributing

See the contribution guidelines.

License

CC0

To the extent possible under law, Mark Fingerhuth has waived all copyright and related or neighboring rights to this work.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].