Extensible, Efficient Quantum Algorithm Design For Humans

Star Us
Quantum Blocks

An intermediate representation to construct and manipulate your quantum circuit and let you make own abstractions on quantum circuit in native Julia.


Yao supports both forward-mode (faithful gradient) and reverse-mode automatic differentiation with its builtin engine optimized specifically for quantum circuits.


Top performance for quantum circuit simulations. Its CUDA backend and batched quantum register support can make typical quantum circuits even faster.


Yao is designed to be extensible. Its hierarchical architecture allows you to extend the framework to support and share your new algorithm and hardware.

Open Source

Yao is provided under the Apache License 2.0, free for everyone to use.

Quick Start

Yao is a   Julia Language   package. To install Yao, please open Julia's interactive session (known as REPL) and press ] key in the REPL to use the package mode, then type the following command

To install stable release
                            add Yao
To install CUDA version
                            add CuYao
To install current master
                            add Yao#master
Check our tutorials and documentation for detailed guide of usage.


  Github Issue
The official repository of Yao

Ask questions, join discussion and development through github issues.

Issues Submit an Issue
  Julia Slack
#yao-dev #quantum-computing

Browse and join discussion on quantum computing.

Click here to join
 Julia Discourse
the official Julia discourse

Ask a question in Quantum category.

Julia Discourse

Yao is currently supported by these organizations: