An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages.
ZXing is an open-source barcode scanning library that enables applications to read and generate a wide variety of 1D and 2D barcode formats. It solves the problem of integrating reliable barcode processing functionality without relying on proprietary SDKs. The core library is implemented in Java, with a vast ecosystem of ports bringing this capability to nearly every major programming language and platform.
Developers building applications that require barcode scanning or generation, particularly those working on JVM (Java, Kotlin, Scala) or Android projects. It's also valuable for developers in other ecosystems (C++, .NET, Python, JavaScript) via its language ports.
Developers choose ZXing for its proven reliability, extensive format support, and permissive open-source license. Its primary value is providing a single, robust library that can be embedded to handle barcode processing across a vast number of platforms and use cases.
ZXing ("Zebra Crossing") barcode scanning library for Java, Android
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Decodes and generates over a dozen 1D and 2D barcode formats including UPC, EAN, Code 128, QR Code, and Data Matrix, as listed in the README's supported formats table.
Core Java implementation ensures JVM compatibility, with a vast array of community-maintained ports for C++, .NET, JavaScript, Python, Rust, and others, enabling integration across diverse environments.
As a long-standing, widely-used open-source project with a large user base, it offers stable and thoroughly tested barcode processing capabilities for production use.
Organized into separate modules like core, javase, and android, allowing developers to include only necessary components and reduce dependency bloat.
The project is only accepting bug fixes and minor patches, with no active development or roadmap, severely limiting future enhancements and feature additions.
The included Barcode Scanner app does not work with Android 14 and is not maintained, forcing developers to build their own scanner UI from scratch, contrary to the DIY philosophy.
Many language ports are community-maintained or listed as 'previous releases', leading to inconsistent updates, varying quality, and potential compatibility issues across different platforms.