Plugins and ecosystem

PennyLane provides a framework for the construction and optimization of hybrid quantum-classical computational models. While classical processing is performed using the wrapped version of NumPy provided by PennyLane, quantum nodes are evaluated on ‘devices’ - corresponding to a quantum simulator or quantum hardware device.

PennyLane comes with built-in support for two simple quantum devices:

Device name Description
default_qubit A simple pure state simulation of a qubit-based quantum circuit architecture
default_gaussian A simple simulation of a Gaussian-based continuous-variable quantum optical architecture

PennyLane is designed from the ground up to be hardware and device agnostic, allowing quantum functions to be easily re-used on different quantum devices, as long as all contained quantum operations are supported.

List of available plugins

PennyLane has also been designed to be easily extensible, supporting external quantum devices and custom quantum operations via the built-in plugin API. These plugins are installed separately, providing a rich ecosystem integrating popular quantum software development libraries with the hybrid optimization capabilities of PennyLane.

Below, we maintain a list of the installable plugins available for PennyLane.

Plugin Supported PennyLane Operations Description

  • Strawberry Fields is a Python library for simulating continuous variable quantum optical circuits.
  • Combines Strawberry Fields’ polished simulator suite with PennyLane’s automatic differentiation and optimization.
  • Provides two devices to be used with PennyLane: strawberryfields.fock and strawberryfields.gaussian.

  • pyQuil and the Forest SDK are an open-source quantum software framework designed by Rigetti.
  • Supported hardware backends include the Rigetti Aspen-1 QPU.
  • Provides four devices to be used with PennyLane: forest.wavefunction, forest.numpy_wavefunction, forest.qvm simulators, and the forest.qpu hardware backend.

  • Qiskit-Terra is an open-source quantum software framework designed by IBM.
  • Supported hardware backends include the IBM Quantum Experience.
  • Provides two devices to be used with PennyLane: qiskit.aer simulator and hardware backend

  • ProjectQ is an open-source quantum compilation framework.
  • Supported ProjectQ hardware backends include the IBM Quantum Experience.
  • Provides three devices to be used with PennyLane: projectq.simulator,, and projectq.classical.

  • Microsoft QDK is a library for quantum programming using the .NET Q# quantum programming language.
  • Provides access to the QDK full state simulator microsoft.QuantumSimulator to be used with PennyLane.

For an introductory tutorial on using plugin devices in PennyLane, see Plugins and Hybrid computation. For more details on any of the external plugins, including the devices they provide, device-specific options, and supported quantum operations and expectation values, please see the plugin documentation.

If you have written a PennyLane-compatible plugin and would like it to be listed in the table above, please send us an email at

Developing a plugin

To write your own PennyLane-compatible plugin, the best place to start is our overview of the developer API, as well as exploring the source code of the provided reference plugin modules pennylane.plugins.default_qubit and pennylane.plugins.default_gaussian (providing the default.qubit and default.gaussian devices respectively).