Shiny new stuff (more than I was aware of, after all this time...)
* Add support for DX Film Edge read by Merinorus in https://github.com/zxing-cpp/zxing-cpp/pull/684
* Add support for detecting and reading Aztec Runes by gormster in https://github.com/zxing-cpp/zxing-cpp/pull/763
* Add reader support for `DataBarLimited` symbols (sponsored by EUREKAM)
* Add C-API in official build
* Add Kotlin/Native Wrapper by ISNing in https://github.com/zxing-cpp/zxing-cpp/pull/719
* Add Rust wrapper based on C-API
* Add .NET wrapper based on C-API
* Introduce new name `Barcode` for `Result` which will be removed in 3.0
* LocalAverage binarizer: re-implement with symmetric threshold interpolation for improved detection of inverted symbols
* cmake: replace `BUILD_...` prefix of cmake options with `ZXING_...`
* cmake: switch to c++-20 by default for the core library
* ImageView: introduce bounds checks in constructor
* ImageView: Add ImageFormat::LumX for 2-byte grey + alpha input
* ImageFormat: replace 'X' with 'A', e.g. RGBX -> RGBA
* ZXingReader: add -binarizer <local|global|fixed> command line option
* ZXingReader: add -single option to setMaxNumberOfSymbols(1)
* ZXingReader: parse -formats (including 's') command line argument
* ZXingReader: support reading image file from stdin by passing '-'
* android: switch 'namespace' from `zxingcpp` to `zxingcpp.lib` to fix issue with maven central publication
* Python: add support to write `bytes` as binary data
* `ZXing::Version()` function to query the library version at runtime (useful when dynamically linked)
New experimental API (cmake option `-DZXING_EXPERIMENTAL_API=ON`)
* New experimental Create+Write API for generating/writing barcodes (will replace MultiFormatWriter)
* New experimental libzint based writer backend
* New `ImageView Barcode::symbol()` property
* New experimental writer API in python
Minor changes and bug fixes
* Complete ZXIReaderOptions in iOS Wrapper by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/692
* ios: remove initWithFormats initializer by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/723
* cmake: Make build reproducible across different build directories by EchterAgo in https://github.com/zxing-cpp/zxing-cpp/pull/730
* Release color space after use in iOS wrapper by markusfisch in https://github.com/zxing-cpp/zxing-cpp/pull/790
* cmake: allow overriding python install directories by jameshilliard in https://github.com/zxing-cpp/zxing-cpp/pull/842
* Refine MultiFormatReader results filtering and apply C++20 `erase_if` by Doekin in https://github.com/zxing-cpp/zxing-cpp/pull/846
* HRI: update AIs to latest gs1-syntax-dictionary.txt by gitlost in https://github.com/zxing-cpp/zxing-cpp/pull/880
* android: add linker flag to support flexible page sizes in Android 15 by ccrowell-kr in https://github.com/zxing-cpp/zxing-cpp/pull/872
* Deprecate `validateITFCheckSum`, `validateCode39CheckSum`, `returnCodabarStartEnd`
* BitHacks: fix random QRCode content on pre-Haswell Windows machines
* DataMatrix: improve detection of near 45° rotated symbols
* cmake: add /utf-8 to MSVC compile flags
* Barcode: tune operator==() to not split up overly tall linear symbols
* Several ITFReader improvements
* QRDecoder: return some content even in the presence of a checksum error
* DataBar: improve detection rate by incorporating edge-2-edge pattern
* PDF417: prevent wrong position info with right side collapsing to (0,0)
* Python: make sure macOS and 64bit Linux packes on pypi.org support multi-symbol DataMatrix detection (c++20 support)
New Contributors
* Merinorus made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/684
* ISNing made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/718
* hha1501 made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/747
* gormster made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/763
* 549393092 made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/777
* bindreams made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/787
* johngladp made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/808
* jameshilliard made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/842
* Doekin made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/846
* spageektti made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/858
* stbergmann made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/864
* ccrowell-kr made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/872
* GUIEEN made their first contribution in https://github.com/zxing-cpp/zxing-cpp/pull/877
Sponsors
Thanks a lot for all 'old' and 'new' sponsors, listed here in alphabetical order:
* EUREKAM
* ikapoz
* kurzdigital
* nahojjjen
* usefulsensors
* wcjohns
**Full Changelog**: https://github.com/zxing-cpp/zxing-cpp/compare/v2.2.1...v2.3.0