ngx-scanner is a free, open source documentation & knowledge base project written in TypeScript and released under MIT. It has 667 GitHub stars, 233 forks and 89 open issues, and was last pushed 4 months ago. On this registry it ranks #84 of 100 tracked projects in Documentation & Knowledge Base, with 5 head-to-head comparisons available.

What is ngx-scanner?

ngx-scanner is an open-source Angular component, published on npm as @zxing/ngx-scanner under the MIT licence, that decodes QR codes, barcodes and DataMatrix codes from a device camera using the ZXing engine, and it is aimed at Angular developers who need scanning inside an existing application rather than in a separate mobile app.

What it is

ngx-scanner is an Angular component that turns a live camera feed into decoded barcode, QR code and DataMatrix results. It is written in TypeScript and depends on ZXing for the actual decoding work, which means the recognition logic comes from a mature barcode-reading engine rather than from code maintained inside this project. The component is distributed as the npm package @zxing/ngx-scanner, and according to the README usage is intended to be as simple as placing the component in an Angular template. It sits in the Angular and zxing-js ecosystem, and the project maintains version alignment with the framework: the package major version matches the supported Angular major, so @zxing/ngx-scanner@21.0.0 targets Angular 21, and future releases will keep using the same major as the Angular version they support.

The concrete problem it removes is the plumbing between camera access and barcode decoding. Any Angular application that wants to read a code has to request camera permissions, manage a media stream, feed frames to a decoder and surface results and errors in the UI. ngx-scanner packages that whole chain into one reusable component, so a team integrating scan-to-lookup behaviour does not write and maintain its own camera-to-decode pipeline. It replaces custom, hand-rolled scanning code in Angular projects with a dependency that can be versioned and upgraded alongside the framework.

Key capabilities

  • Decodes QR code, barcode and DataMatrix formats through the ZXing engine.
  • Ships as the npm package @zxing/ngx-scanner so it can be added as a normal Angular dependency.
  • Aligns major versions with Angular: @zxing/ngx-scanner@21.0.0 corresponds to Angular 21, and later releases will follow the same scheme.
  • Uses the device camera directly in the browser, as reflected in the project's camera topic, with no native application required.
  • Requires HTTPS in production environments, which the README states as a requisite with a linked explanation.
  • Provides a hosted demo at https://zxing-js.github.io/ngx-scanner/ and a StackBlitz instance for trying the component without local setup.
  • Documents setup and tuning in a wiki, including a Getting Started page and a Performance Considerations page.

Who uses it and how

  • Angular teams adding a scan step to an existing web application, where the component is consumed as one npm dependency rather than as a separate service.
  • Developers evaluating first, using the online demo or the StackBlitz instance before committing to the package in a codebase.
  • Production deployments served over HTTPS, since camera access in the browser depends on a secure context and on the user granting permission.
  • Projects pinned to a specific Angular major, which select the matching package major to stay compatible.
  • Contributors and backers, including participants drawn in through the hacktoberfest topic and supporters funding the work through the project's Open Collective.

Getting started

The component is installed from npm as @zxing/ngx-scanner, and the README points to the project wiki's Getting Started page for the setup steps. Version compatibility is determined by matching the package major to the Angular major in use, and any production deployment must be served over HTTPS.

How it compares

Within the same zxing-js family, the README points to ngx-kjua for generating QR codes and to the ZXing TypeScript port at zxing-js/library for writing codes directly, so ngx-scanner is the scanning front end for Angular rather than a generator or a general-purpose decoder library. A project that only needs to produce codes should look at those two instead.

When to use it — and when not to

There is no server-side component to operate, since the scanning runs in the browser, but a self-hoster still has to serve the application over HTTPS and handle camera permissions from users. Anyone who needs guaranteed vendor support should not choose it: the README carries a "Maintainer wanted" badge and states plainly that the maintainers no longer have time to actively maintain zxing-js, while welcoming new maintainers to take the lead. The repository also carries a substantial number of open issues and a README thin enough that real detail lives on the wiki, so teams should budget for reading that documentation and for the possibility that fixes arrive slowly.

project readme (upstream, from github) — read inline

Angular ZXing Scanner

@zxing/ngx-scanner

Angular Barcode/QR-Code scanner component.


Bug Report · Feature Request


NPM version Downloads Build Status Made with Angular Maintainer wanted

Backers on Open Collective Sponsors on Open Collective


Attention

NOTE: While we do not have the time to actively maintain zxing-js anymore, we are open to new maintainers taking the lead.

Demo

Previews needs to be opened in new standalone windows.

Some previews may not be fully updated, please check the version. 😉

How To

I promise that it's very easy to use:

<!-- some.component.html -->
<zxing-scanner></zxing-scanner>

Getting Started

click here

Angular version compatibility

Angular version compatibility:

The main version of @zxing/ngx-scanner will be compatible with the corresponding Angular version. That means e.g. @zxing/ngx-scanner@21.0.0 will be compatible with Angular 21.

(Sorry for not using semver in the past, future releases will use the same major as the supported Angular version)

Wiki

Check our nice wiki for more info: click here to take a look!**

Requisites

  • HTTPS for production environments (more).

Performance

Read our performance notes on the wiki: Performance Considerations.

Generator

Looking for a way to generate awesome QR codes? Check-out ngx-kjua.

Want just to write QR codes on your own, try our ZXing typescript port.

Financial contributions

We also welcome financial contributions in full transparency on our open collective. Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.

Credits

And last but not less important, the credits.

Contributors

Here goes a special thanks all our contributors. Thank you! 🖤❤️♡

Backers

Thank you to all our backers! [Become a backer]

Sponsors

Thank you to all our sponsors! (please ask your company to also support this open source project by becoming a sponsor)


Bless Greenkeeper badge

Frequently asked questions

Is ngx-scanner free to use?

ngx-scanner is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does ngx-scanner do?

Angular QR code, Barcode, DataMatrix, scanner component using ZXing.

What is ngx-scanner written in?

ngx-scanner is primarily written in TypeScript. Its source is publicly available at https://github.com/zxing-js/ngx-scanner, and it has 667 GitHub stars.