--- id: pyzxing version: "1.2.2" license: MIT license_treatment: permissive maintenance: active --- # pyzxing — Reliable Python bindings for the ZXing barcode decoder. License: permissive · Maintenance: active · Downloads: 562.1K/mo ## What it is and what it does pyzxing is a Python wrapper around the ZXing barcode decoder that delegates decoding to a versioned, checksum-verified Java Runner. It accepts file paths or NumPy arrays and returns a consistent list of dictionaries, each containing decoded text, format, raw bytes, byte segments, result points, orientation, and metadata. The library supports QR Code, Data Matrix, PDF417, Aztec, and common one-dimensional barcode formats, with control over decode hints like format constraints, character sets, and effort levels. The package runs on Linux, macOS, and Windows with Python 3.8–3.14 and Java 17+. It automatically downloads and verifies the matching ZXing Runner on first use, or can receive it from conda-forge. Runtime dependencies are minimal—only joblib and numpy—making installation straightforward. The API is stable and designed for both single-image and batch (glob) decoding workflows. Use it for: - Decode QR codes from uploaded images in a web application or document processing pipeline. - Batch scan a directory of product barcodes to extract SKUs or inventory data. - Extract binary payloads from QR codes while preserving byte segments for lossless reconstruction. - Integrate barcode reading into a desktop or server application with explicit format hints to improve accuracy. - Process video frames or webcam input by converting them to NumPy arrays and decoding on demand. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Decode barcodes and QR codes from images or NumPy arrays using ZXing, supporting QR Code, Data Matrix, PDF417, Aztec, and one-dimensional formats with format hints and binary payload preservation. Yes. pyzxing is actively maintained, has low install friction, carries no known vulnerabilities, and offers a stable, well-documented API for barcode decoding. The MIT license is permissive. The only real constraint is the Java 17+ requirement, which is a runtime dependency, not a blocker for most environments. Install it if you need reliable barcode or QR code decoding with control over decode hints and access to raw metadata. ## Install pip install pyzxing uv add pyzxing poetry add pyzxing ## Installing pyzxing Before you install: Low friction: pure Python wheel with only joblib and numpy as runtime dependencies. Active maintenance with a release 28 days ago. Requires Java 17+ on PATH and downloads a pinned ZXing Runner on first use with SHA-256 verification. License in practice: MIT license permits commercial and private use with minimal restrictions—suitable for most projects. Quickstart: pip install pyzxing from pyzxing import BarCodeReader reader = BarCodeReader() results = reader.decode("/path/to/qrcode.png") for result in results: print(result["format"], result["text"]) Java 17 or newer must be available as `java` on PATH; optional OpenCV for NumPy array input. Verify before relying: - Performance characteristics when decoding large image batches or high-resolution images. - Memory overhead of the Java Runner process and whether it persists across multiple decode calls. - Compatibility with containerized or restricted environments where Java PATH access may be limited. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 562.1K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags barcode decoding python, qr code reader, zxing python bindings, decode barcodes images, barcode scanner library, qr code detection, data matrix decoder, barcode-scanning, qr-codes, image-processing [View on SkillFed](https://skillfed.io/packages/pyzxing) · [View on PyPI](https://pypi.org/project/pyzxing/)