  The ZX-calculus is a graphical language for reasoning about quantum
computation that has recently seen an increased usage in a variety of areas
such as quantum circuit optimisation, surface codes and lattice surgery,
measurement-based quantum computation, and quantum foundations. The first half
of this review gives a gentle introduction to the ZX-calculus suitable for
those familiar with the basics of quantum computing. The aim here is to make
the reader comfortable enough with the ZX-calculus that they could use it in
their daily work for small computations on quantum circuits and states. The
latter sections give a condensed overview of the literature on the ZX-calculus.
We discuss Clifford computation and graphically prove the Gottesman-Knill
theorem, we discuss a recently introduced extension of the ZX-calculus that
allows for convenient reasoning about Toffoli gates, and we discuss the recent
completeness theorems for the ZX-calculus that show that, in principle, all
reasoning about quantum computation can be done using ZX-diagrams.
Additionally, we discuss the categorical and algebraic origins of the
ZX-calculus and we discuss several extensions of the language which can
represent mixed states, measurement, classical control and higher-dimensional
qudits.
