FlatBuffers is designed for performance and zero-copy access, but that also makes the raw binary format hard to reason about. When debugging serialization issues or learning the format, I often found it difficult to connect the schema, decoded data, and the underlying bytes.
This tool lets you paste a .fbs schema and some hex-encoded FlatBuffers data and see how the bytes map to tables, fields, vectors, strings, and vtables. The hex view and structure view are linked so you can move between the raw bytes and the logical structure.
A few things it includes:
- Color-coded hex view showing how bytes map to FlatBuffers structures
- Interactive structure tree linked to byte ranges
- Decoded JSON view generated from the schema
- FlatBuffers schema compiler running in WebAssembly, so everything runs fully in the browser
I originally built it to debug serialization issues, but it also turned out to be a useful way to understand how FlatBuffers encoding works internally.
You can try it here: https://fbsviewer.shuozeli.com
Repo: https://github.com/Shuozeli/fbsviewer-lib
Feedback and suggestions are very welcome.
thebuilderjr•5h ago
One feature request that would make this even more useful for debugging: a shareable permalink or export bundle for a specific schema + buffer pair. Being able to drop a URL into an issue or PR with the exact repro already loaded would make this great for chasing serialization regressions.
SuzyLi•4h ago
A shareable permalink is a great idea. Since the tool currently runs entirely client-side with no backend, the likely approach would be encoding the schema and binary directly into the URL (probably compressed + base64). I’ll experiment with this since it would make sharing repro cases in issues or PRs much easier.