EByte, the studio’s twenty-fifth project, is a Go library and one command-line tool for binary file formats. You describe a format once in a JSON schema, and the same description reads a file into editable JSON, writes it back and traces it field by field. The rule it’s built around is easy to check: decode a file, encode it unchanged, and every byte comes back, padding and reserved fields included. When a file doesn’t match, the tool prints one line of JSON with the field, the byte offset and what it expected, and never the file’s contents.
The tests start from bytes written down by hand before the decoder existed, so a decoder and encoder that share a mistake still fail. Six fuzz targets run on every change, and the recorded resource run took files up to the 16 MiB ceiling through a full round trip with every byte identical, in one sample per case.
The case studies use real files and the released binary. A WAV header gets its sample rate doubled with four changed bytes. A BMP image flips upside down when its height goes from 3 to -3. A one-file ZIP shows both copies of its file date, and a two-file archive stops at offset 72, the first byte where the second file’s header differs from the directory the schema expects. A shell script sorts a folder of recordings by exit code. Each post also says where version 1 stops: no arithmetic between fields, no checksums and no repeating blocks.
Version 0.1.1 followed 0.1.0 the same day with fixes from a code review: --output refuses folder names, SIGTERM cleans up like Ctrl-C, and the release workflow now catches a leftover draft before publishing. Binaries for Linux, macOS and Windows are on the latest release, with nothing outside the Go standard library, open source under Apache 2.0.