  This paper introduces PyMatching, a fast open-source Python package for
decoding quantum error-correcting codes with the minimum-weight perfect
matching (MWPM) algorithm. PyMatching includes the standard MWPM decoder as
well as a variant, which we call local matching, that restricts each syndrome
defect to be matched to another defect within a local neighbourhood. The
decoding performance of local matching is almost identical to that of the
standard MWPM decoder in practice, while reducing the computational complexity
approximately quadratically. We benchmark the performance of PyMatching,
showing that local matching is several orders of magnitude faster than
implementations of the full MWPM algorithm using NetworkX or Blossom V for
problem sizes typically considered in error correction simulations. PyMatching
and its dependencies are open-source, and it can be used to decode any quantum
code for which syndrome defects come in pairs using a simple Python interface.
PyMatching supports the use of weighted edges, hook errors, boundaries and
measurement errors, enabling fast decoding and simulation of fault-tolerant
quantum computing.
