Quantum Computing

Libraries for quantum computing.

Qiskit for most circuits, PennyLane for circuits you train, Cirq for device-level control, QuTiP for physics: Python quantum computing libraries you can mix.

How to choose:

  • Most circuit work, including IBM hardware: Qiskit
  • Circuits you train with gradients, like quantum machine learning: PennyLane
  • Device-level control over circuits and noise: Cirq
  • Simulating the dynamics of open quantum systems: QuTiP

Listed in editorial order. Click a column to re-sort the whole list.

Press / to search. Tap a tag to filter. Click any row for details.

Search and filter

Results

Row number Tags
An IBM-backed quantum SDK for building, simulating, and running circuits on real quantum hardware.
Qiskit/github.com/Qiskit/qiskit / /857,971 downloads/month
Quantum Toolbox in Python.
qutip/github.com/qutip/qutip / /241,489 downloads/month
A cross-platform library for quantum computing, quantum machine learning, and quantum chemistry.
PennyLaneAI/github.com/PennyLaneAI/pennylane / /164,523 downloads/month
A Google-developed framework focused on hardware-aware quantum circuit design for NISQ devices.
quantumlib/github.com/quantumlib/Cirq / /97,545 downloads/month

Quantum Computing guide

Qiskit is an SDK for working with quantum computers at the level of circuits, operators, and primitives. Its docs lay out the development workflow as a Qiskit pattern: map your problem to circuits, optimize them for the target hardware, run them, and post-process the results. Run circuits through the Sampler and Estimator primitives. Sampler samples outcomes, and Estimator estimates expectation values. Before a circuit goes to a device, transpile it to the gates and qubit connections that device supports. Test it in local testing mode first: once your program works there, moving to a QPU takes only a backend name change.

PennyLane lets you train a quantum computer the same way as a neural network: it differentiates quantum circuits and connects them to PyTorch, JAX, and NumPy. Write each circuit as a Python function under the qnode decorator, which ties it to the device that runs it. Pick the interface for your machine learning library, then train with that library's own optimizers.

Cirq is for writing, manipulating, and optimizing quantum circuits when the details of the hardware matter. A circuit is a collection of Moments, each a set of operations that act in the same time slice. Model your target processor as a Device and validate your circuits against it. Then compile them with transformers into circuits that device can run. Test small circuits on the built-in simulators, then move to qsim, which its docs recommend for most users. Before Google hardware, run on the Quantum Virtual Machine, which mimics Google's processors with noise data.

QuTiP simulates the dynamics of open quantum systems, like the ones in quantum optics, trapped ions, and superconducting circuits. Every state and operator is a Qobj, and QuTiP has predefined ones for a variety of them. Pick the solver by the kind of system: a closed system is a state vector, and an open one needs a density matrix. mesolve covers both, and switches to the master equation when you give it collapse operators. For large systems, the docs recommend the Monte Carlo solver. To simulate quantum circuits, use its qutip-qip package.

You don't have to stay with one library. PennyLane imports Qiskit circuits, and its plugins run on Qiskit devices and Cirq's simulators. QuTiP's qutip-qip simulates circuits made in Qiskit.

Know a project that belongs here?

Tell us what it does and why it stands out.