A cross platform javascript library for scanning and generating QR codes and barcodes.
This library was forked from mebjas/html5-qrcode by the mebjas to set path for high quality, performant and scalable library for everyone to scan and generate image codes using javascript.
Do not use this library for production yet
mebjas@: I have forked and published this package to reserve package name. It's not yet ready for consumption as the APIs are prone to breaking changes in future.
You can follow this discussion to track updates on this library. Meanwhile please continue to use the latest published version of mebjas/html5-qrcode.
If you are interested, please continue to use this, test and give feedbacks but do not use this in production.
-
🔲 Support scanning different types of bar codes and QR codes.
-
🖥 Supports different platforms be it Android, IOS, MacOs, Windows or Linux
-
🌐 Supports different browsers like Chrome, Firefox, Safari, Edge, Opera ...
-
📷 Supports scanning with camera as well as local files
-
➡️ Comes with an end to end library with UI as well as a low level library to build your own UI with.
-
🔦 Supports customisations like flash/torch support, zooming etc.
-
Supports scanning as well as generating image codes.
Help incentivise feature development, bug fixing by supporting the sponsorhip goals of this project. See list of sponsered feature requests here.
We are working continuously on adding support for more and more platforms. If you find a platform or a browser where the library is not working, please feel free to file an issue. Check the demo link to test it out.
Legends
- Means full support — inline webcam and file based
- Means partial support — only file based, webcam in progress
Firefox |
Chrome |
Safari |
Opera |
Edge |
---|---|---|---|---|
Chrome |
Firefox |
Edge |
Opera |
Opera Mini |
UC |
---|---|---|---|---|---|
Safari |
Chrome |
Firefox |
Edge |
---|---|---|---|
* | * |
* Supported for IOS versions >= 15.1
Before version 15.1, Webkit for IOS is used by Chrome, Firefox, and other browsers in IOS and they do not have webcam permissions yet. There is an ongoing issue on fixing the support for iOS - issue/14
The library can be easily used with several other frameworks, I have been adding examples for a few of them and would continue to add more.
Html5 | VueJs | ElectronJs | React | Lit |
Code scanning is dependent on Zxing-js library. We will be working on top of it to add support for more types of code scanning. If you feel a certain type of code would be helpful to have, please file a feature request.
Code | Example |
---|---|
QR Code | |
AZTEC | |
CODE_39 | |
CODE_93 | |
CODE_128 | |
ITF | |
EAN_13 | |
EAN_8 | |
PDF_417 | |
UPC_A | |
UPC_E | |
DATA_MATRIX | |
MAXICODE* | |
RSS_14* | |
RSS_EXPANDED* |
*Formats are not supported by our experimental integration with native BarcodeDetector API integration (Read more).
This project would not be possible without all of our fantastic contributors and sponsors. If you'd like to support the maintenance and upkeep of this project you can donate via GitHub Sponsors.
Sponsor the project for priortising feature requests / bugs relevant to you. (Depends on scope of ask and bandwidth of the contributors).
Help incentivise feature development, bug fixing by supporting the sponsorhip goals of this project. See list of sponsered feature requests here.
Also, huge thanks to following organizations for non monitery sponsorships
The decoder used for the QR code reading is from Zxing-js
https://github.com/zxing-js/library