explainers
EByte and Binary Schemas Explained in Plain Language
A text file explains itself. Open a CSV or a JSON file and you can read it, more or less. A binary file doesn’t. Open one in a hex editor and you see rows of …
EByte reads a file into JSON you can edit, writes it back byte for byte, and tells you which field and which byte broke when a file doesn't match. One schema does all three. It's a Go library and a single command-line tool.
16 MiB
Largest file decoded to JSON and written back with every byte the same
1 schema
Used for reading, writing and tracing a format, so the three can't drift apart
0 modules
Outside the Go standard library. No generated code to keep in sync
Apache 2.0
License for all of the code
From the recorded test run on Linux amd64 with Go 1.27.3, one sample per case. The test logs are on GitHub.
explainers
A text file explains itself. Open a CSV or a JSON file and you can read it, more or less. A binary file doesn’t. Open one in a hex editor and you see rows of …
the name
EByte is a tool that cares about bytes, every one of them, so the name starts there. The word itself is younger than most people guess, and its odd spelling was on …
case studies
The example that ships with EByte is a made-up format. This case study uses a real one: a WAV audio file, made by Python’s standard wave module and read with the …
releases
EByte 0.1 is out. It’s a small Go library and a command-line tool for binary file formats, and it does one thing that sounds obvious until you’ve tried it: …
testing
A codec has a sneaky way of passing its own tests. If the decoder and the encoder share a mistake, say both read a count from the wrong byte, then decoding a file and …
If EByte nearly fits a format you work with, or you'd like it to handle something it doesn't yet, write in.