# 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.

Source: https://useqr.app/glossary/zxing · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## 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.
