Skip to content
UseQR

Glossary

ZXing

ZXing — "zebra crossing" — is the open-source barcode library that most QR decoding is ultimately built on. UseQR uses a WebAssembly build of it to decode every code it generates, before you download it.

Why it matters here

Most generators render a QR code and hand it over. If a styling choice broke the pattern, you find out when a customer cannot scan your poster.

UseQR rasterises the styled output and reads it back with a real decoder. If it does not decode, it does not ship. That check runs in your browser before download, and in CI across the full style matrix for every commit.

The wider ecosystem

ZXing began as a Java library and has been ported widely — zxing-cpp, zxing-js, zxing-wasm. Its detection and decoding heuristics are what most phone camera apps and most web scanners inherit, which is why "does ZXing read it?" is a good proxy for "will a phone read it?"

Alternatives: quirc (small C, embedded use), ZBar (older, still common in Linux tooling), and each platform's native detector — Apple's Vision framework, Android's ML Kit.

  • Decode-verifyDecode-verify is the practice of reading a generated QR code back with a real decoder before shipping it. It is the only way to know that a styled,…
  • Contrast ratioContrast ratio is the luminance difference between a QR code's dark and light modules. Decoders need a clear threshold; the practical floor is about 40%…
  • Error correction levelError correction level sets how much of a QR code can be damaged and still decode: L tolerates about 7%, M 15%, Q 25% and H 30%. Higher levels cost…