github zxing-cpp/zxing-cpp v3.1.0-rc1

pre-release5 hours ago

Major Changes:

Note: The automatically created "Source Code" zip and tar.gz files are broken and can't be fixed (GitHub limitation regarding git submodules). If you need this, please download the attached zxing-cpp-<...>.zip/.tar.gz file.

New/Improved Symbologies

  • Added decoder support for Telepen symbology
  • Added decoder support for MicroPDF417 (sponsored by Allied Vision Konstanz GmbH)
  • Greatly improved Aztec detector for large, non-flat symbols by evaluating internal timing patterns
  • Greatly improved DataMatrix detector for large, non-flat symbols by evaluating internal alignment patterns
  • Major improvement in QRCode detection of many small symbols in a single image

New/Improved wrappers

  • Added a Go wrapper
  • Switched from pybind11 to nanobind in Python wrapper code (enhanced IDE support, faster build times, smaller binaries, free-threaded Python support)

General

  • Improved API documentation, now published under https://zxing-cpp.github.io/zxing-cpp/docs/latest
  • Considerable performance improvements, especially on ARM chips (10%-40% in specific scenarios)
  • ReedSolomon: generic implementation for prime and extended Galois Fields with improved performance
  • Added support for "Unused Error Correction" meta data (Barcode::extra("UEC"))

Minor Improvements and Bug Fixes

  • AZHighLevelEncoder: fix mixed table '}' (0x7d) -> '~' (0x7e) by @gitlost in #1065
  • Silence deprecated-declarations warnings on Windows too by @x1sc0 in #1066
  • fix test/fuzz build by @kcwu in #1071
  • oned: DataBar: catch std::out_of_range in DecodeExpandedBits by @kcwu in #1080
  • [ODCode39Reader] Fix crash in DecodeCode32 due to unhandled exception by @kcwu in #1083
  • DMDetector: guard empty DataMatrix gap list by @markusfisch in #1100
  • Fix constructor parameter names in PointT by @MonkeybreadSoftware in #1097
  • iOS: add formats getter/setter to ZXIReaderOptions by @hrasnam in #1094
  • Add Windows resource file for version information by @davidhsing in #1101
  • Fix #include bug by @KangLin in #1103
  • ODCode128Reader: only process 1st/2nd position FNC1 once by @gitlost in #1113
  • AZDecoder: allow lowercase AIM id (2nd position FNC1) per spec by @gitlost in #1114
  • DMDecoder: restrict AIM id (2nd position FNC1) to alpha/2 digits by @gitlost in #1117
  • Rust: add define in build.rs to set CMAKE_INSTALL_LIBDIR to lib by @demondave in #1119
  • Fix missing iterator header on Android by @umerov1999 in #1121
  • Fix out-of-bounds access bugs in PDF417 decoder
  • Fixed an endless loop in the QRDetector
  • Fixed regression in BarcodeFormat based filtering during ReadBarcodes operation
  • cosmetic improvements to ZXingQtCamReader demo app
  • modernized Android Demo App code

Sponsors

Thanks to all 'new' and 'old' sponsors, named here in random order:

New Contributors

Full Changelog: v3.0.2...3.1-rc1

Don't miss a new zxing-cpp release

NewReleases is sending notifications on new releases.