Skip to content

quaxquax/os_quantum_software

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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 2k$ grant project for quantum OSS!

Contents

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

Quantum full-stack libraries

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 framework with compiler and simulator with emulation capabilities.
  • Cirq - Framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.

Q#

  • Q# - Microsoft's quantum programming language with Visual Studio integration.

C++

Quantum simulators

Python

  • Quantum Virtual Machine - Reference implementation of Rigetti's Quantum Virtual Machine.
  • QuTiP - User-friendly and efficient numerical simulations of a wide variety of open quantum systems.
  • QTop - Simulation and visualization of topological quantum computers.
  • Quintuple - Simulating the 5-qubit processor of the IBM Quantum Experience.
  • QuSim - Ideal noise-free multi-qubit simulator written in 150 lines of code.
  • PIQS - Efficient simulation of open quantum dynamics of identical qubits.
  • SimulaQron - Application level simulator of a quantum network.

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).
  • Qrack - Comprehensive qubit and gate implementation for developing universal virtual quantum processors.

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

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#

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.

Quantum annealing

Python, C & Matlab

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

Python

C++

Quantum algorithms

Python

Julia

C++

  • XACC VQE - Distributed Variational Quantum Eigensolver built on XACC for solving electronic structure problems.

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.

Python

  • Qubiter - Quantum compiler using a Python wrapper for LAPACK's CS Decomposition to build a binary tree of matrices.
  • QGL2 Compiler - Language compiler for imperative Quantum Gate Language (QGL).
  • PyZX - Python library for quantum circuit rewriting and optimisation using the ZX-calculus.

Julia

  • QGL.jl - A performance orientated QGL compiler.

Quantum assembly

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

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.

Experimental quantum computing

Python

  • 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.
  • PyQLab - Library for instrument control and superconducting QIP experiments.
  • ARTIQ - Next-generation control system for quantum information experiments.
  • qc-toolkit - Quantum Computing Toolkit for Qubit Control.
  • QFlow-lite - Machine Learning tools for autotuning quantum dot experiments.

Matlab

  • Qlab - Measurement and control software for superconducting qubits.

Julia

  • Qlab.jl - Generic lab tools in Julia.

Quantum fun

Python

Python & JavaScript

Board games

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

Quantum tools

Python

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

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.

About

Curated list of open-source quantum software projects.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published