finds.dev← search

// the find

ericblade/quagga2

★ 910 · TypeScript · MIT · updated Sep 2026

An advanced barcode-scanner written in Javascript and TypeScript - Continuation from https://github.com/serratus/quaggajs

Quagga2 is a maintained fork of the abandoned QuaggaJS, doing real-time barcode localization and decoding (EAN, UPC, Code128/39/93, Codabar, Pharmacode, etc.) in the browser via getUserMedia, with limited file-based decoding in Node. It's for anyone who needs barcode scanning without a native SDK or a paid service, especially inventory/POS-style web apps.

The barcode locator is the actual differentiator — it finds a barcode pattern and its rotation/bounding box in a cluttered image instead of requiring the code to be perfectly aligned with the viewport, which is what most JS barcode libs skip. CameraAccess API wraps getUserMedia/torch/zoom/device enumeration cleanly, including constraint-based device filtering. Reader priority is explicit and documented (first match in the `readers` array wins), which matters a lot for formats like EAN-13 vs UPC-A that otherwise false-positive against each other. External reader registration (`Quagga.registerReader`) lets you add formats like QR without forking the library.

Core image-processing code (cv_utils.js, cluster.js, the decoder) is still plain JS despite the repo being marketed as TypeScript — the TS migration is partial, not complete. Node support is file-based decoding only; there's no live-stream path outside the browser, so 'works in Node' is a narrower claim than it first sounds. The locator is CPU-expensive and the README is upfront that `halfSample`/`patchSize` need per-use-case tuning — this isn't a drop-in 'it just works' scanner, expect a tuning pass against your actual camera/lighting conditions. The official docs site is linked as the primary reference but is explicitly flagged 'UNDER CONSTRUCTION' in the README itself.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →