Skip to content

Commit 69b495c

Browse files
authored
chore: release v0.2.0 (#5)
1 parent 7c96ee8 commit 69b495c

2 files changed

Lines changed: 89 additions & 1 deletion

File tree

‎CHANGELOG.md‎

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,94 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.2.0](https://github.com/KarpelesLab/anydcode/compare/v0.1.4...v0.2.0) - 2026-09-18
11+
12+
### Other
13+
14+
- read the fixed patterns before paying for a whole grid
15+
- imgproc, image: primitives survive absurd sizes, radii and non-finite geometry
16+
- sampler believes a rune only if the whole 11x11 grid is that rune
17+
- sampler checks the solid edge columns before sampling a grid
18+
- bounded fiducial flood; aztec, microqr, rmqr: stop flooding the page
19+
- imgproc, aztec: bound finder/bullseye hit clustering on textures
20+
- analyse the symbol under a mask of its own quad
21+
- bars at 45 degrees are not finder patterns
22+
- noise- and shift-tolerant hint matching; docs
23+
- live path: regression tests; UPC-E vote floor; Aztec blank-region reads
24+
- pipeline, detect: read stacked codes from linear regions; grow matrix boxes
25+
- demo, wasm, scan1d: reliable live decode loop; axis refinement
26+
- qr, appclip: stop paying for false hypotheses on code-free frames
27+
- try the largest few dark components as the symbol
28+
- rotation-normalised box fill; liveeval diagnostics
29+
- orientation-aware locator with local binarization
30+
- expand macro codewords on decode; canonical mask for no-op forcing
31+
- corner-forced masks and Reed-Solomon error correction
32+
- fix decoder overflow panic and encoder silent truncation
33+
- reject out-of-range metadata instead of panicking
34+
- make numeral and byte modes conform to AIMD014
35+
- fix 144x144 Reed-Solomon block interleave
36+
- reject unsupported layer counts; add fuzz, capacity and RS tests
37+
- decode latched Punct mode and FLG(n) escapes
38+
- fix orientation marks to the ISO/IEC 24778 pattern
39+
- exhaustive Text sub-mode transition round-trip test
40+
- no-panic fuzz for Code 49 and Codablock F payload reconstruction
41+
- decode Numeric Encodation
42+
- a single-row Expanded Stacked symbol is the linear symbol
43+
- code16k, codablockf: honour FNC4 extended ASCII when decoding
44+
- use the Code 16K pattern 211133 for symbol value 106
45+
- implement Expanded encodation methods 3-14
46+
- reject Omnidirectional/Limited values beyond the GTIN range
47+
- enforce the 928-codeword symbol limit when choosing a geometry
48+
- deterministic no-panic fuzz for the stacked and DataBar decoders
49+
- decode the 913 byte shift inside Text compaction
50+
- reject a truncated Expanded method-1 header instead of panicking
51+
- decode modes 5/6 as set C with implied Shift B
52+
- scan1d, pipeline: scan along any axis; band-averaged profiles
53+
- treat M1's EC codewords as detection-only
54+
- reject undefined mode indicators instead of truncating
55+
- qr, rmqr: reject ECI assignment numbers above 999999
56+
- cross-check EC-block, alignment and remainder tables in a test
57+
- make mask penalty rule 4 symmetric about 50% dark
58+
- report content errors instead of retrying every format
59+
- support ECI; report FNC1 symbols as unsupported, not empty
60+
- deterministic no-panic fuzzing for QR, Micro QR, rMQR and Han Xin
61+
- qr, microqr, rmqr: reject Kanji trail bytes that alias another character
62+
- microqr, rmqr: keep empty segments; reject invalid numeric groups
63+
- reject numeric groups that are not valid decimal numbers
64+
- reject out-of-range numeric groups instead of panicking
65+
- pad M1/M3 with 0xEC/0x11 codewords per ISO/IEC 18004
66+
- scan1d, pipeline: segment scanlines into spans; accept 1D reads by consensus
67+
- deterministic no-panic / re-encodable sweep over linear and postal decoders
68+
- validate the termination bar
69+
- apply FNC4 (extended ASCII) when reconstructing the payload
70+
- decode rows cropped to their last bar
71+
- itf, codabar, twoof5: bound wide elements and require narrow 2-of-5 spaces
72+
- code39, code11: decode symbols printed at up to a 3:1 wide:narrow ratio
73+
- use the standard two-module gap for one-track symbols
74+
- reject POSTNET/PLANET/RM4SCC layouts with no data character
75+
- reject an unparseable customer information field
76+
- only accept canonical intermediate fields
77+
- reject out-of-range post code values instead of panicking
78+
- reject out-of-range codewords instead of panicking
79+
- reject non-BCD bit groups and payload-less rows on decode
80+
- check the all-codes decode-only and scan-only slices too
81+
- reject surplus positional arguments
82+
- scale resamples the edge instead of whitening the border
83+
- decode_payload requires the color stream
84+
- refuse PNGs that declare gigantic dimensions
85+
- do not panic when stdout is closed early
86+
- align CLI list text, README 1D note and doc comments with the code
87+
- MatrixBuf::new reports overflowing dimensions as a capacity error
88+
- composite PNG alpha over white before scanning
89+
- reject absurd --scale instead of panicking or exhausting memory
90+
- strict option parsing (flags, --, unknown options)
91+
- encode hosts of the form appclip.<tld>
92+
- keep leading zeros of numeric URL components
93+
- reject non-ASCII near the scheme prefix instead of panicking
94+
- liveeval (end-to-end live pipeline evaluation) and scantime
95+
- gate decoding on ring structure and the template byte
96+
- require quiet zones in the width-ratio reader; search every offset
97+
1098
### Fixed
1199

12100
- **Live detection.** On camera-like scenes the locate → crop → decode loop read about

‎Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "anyd"
3-
version = "0.1.4"
3+
version = "0.2.0"
44
edition = "2024"
55
rust-version = "1.89"
66
license = "MIT"

0 commit comments

Comments
 (0)