A implementation of ZX-calculus in Julia.

ZX-calculus is a graphical language for quantum computing. One can represent quantum states and operators as ZX-diagrams, and manipulate them with ZX-calculus rules. As an application of ZX-calculus, one can simplify quantum circuits with it. For more details about ZX-calculus, one can check this website.


This package is a Google Summer of Code 2020 project.

Package Features

As an implementation of ZX-calculus, these following features are available similar to the Python implementation PyZX.

  • Building up and manipulating ZX-diagrams
  • Simplifying ZX-diagrams with specific rules
  • Simplifying quantum circuits with ZX-calculus based algorithms including Clifford simplification and phase teleportation.
  • Visualization for ZX-diagrams.

ZXCalculus.jl can be integrated into the quantum compiler YaoLang.jl. This makes the following features.

  • Reading or outputting quantum circuits in various forms (for example, QASM, YaoBlock instructions, and so on).
  • A compiler level circuit simplification engine.


To install ZXCalculus.jl, 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

pkg> add ZXCalculus

For plotting, please install YaoPlots.jl in addition.

pkg> add YaoPlots