EByte 0.4.0 adds checksums to its schemas. A field can be declared as the CRC-32, Adler-32 or one of three CRC-16 variants of other fields; EByte checks it while decoding and writes it while encoding, after any sizes inside its range. Each algorithm is pinned to its published check value for the bytes 123456789, and a new fuzz target compares every CRC it writes with Go’s own hash/crc32.
The case study used a real PNG made by Pillow. A longer comment and a change from 72 to 300 DPI, edited in the JSON, came out with a new length and two new CRCs, which a separate check with zlib.crc32 confirmed and Pillow read back. A single flipped bit in the pixel data or the comment was reported at the exact chunk’s CRC, where Pillow only said the file was broken. The post also shows the limit: pixel data is compressed, so a new width in the header gives a file with correct CRCs that still won’t open. The schema library gained a PNG schema, and its one-file stored ZIP schema now derives both CRC copies.
An independent review found nothing blocking; its small notes were fixed before the release. Binaries for Linux, macOS and Windows are on the latest release, open source under Apache 2.0.