Notes/EByte

EByte Runs in the Browser

EByte 0.7.0 adds a WebAssembly build of the same library, published with every release as ebyte-wasm.zip. It powers a new demo page on ebyte.org where anyone can open a binary file, inspect every field with its byte offset, edit the decoded JSON, encode a new file and compare two files, all inside the page. Nothing is uploaded; there’s no server behind it.

The case study used the demo on a WAV written by ffmpeg. Lengthening its title in the browser updated the RIFF and chunk sizes, ffprobe read the new title, the audio was unchanged, and the file had exactly the same bytes as the command line’s encode of the same JSON. A cut file was reported at the same field and offset as the command line reports it, and a 10.5 MB WAV took about a second and a half to re-encode on the page.

An independent review found nothing that would break the release. Its fixes went in first: a bad call from a page now returns an error instead of stopping the runtime, and the release checks that the WebAssembly build came from the same commit and Go version as the other archives before it goes out. Everything is on the latest release, open source under Apache 2.0.