At first I wasn't quite sure what I was looking at -- but wow, this project rocks!
Kaitai is like protobuf, but for binary formats. It's an incredibly clever way to not write n*m-many parsers for each language. You write a spec for your binary format and the Kaitai libraries in each language can then decode (and presumably encode) the payloads. Gif, wav, pdf, zip, fbx, your custom format, whatever.
This web IDE makes it easy to visualize and develop parser specs against actual data.
The concept is great, there are a handful of limitations that become more apparent with actual use. The main one is there is no encoding, just decoding. The generated code and representation of the parsed data also sometimes feel idiomatic to the language used, particularly in cases where I found I had to add extra levels of indirection to satisfy kaitai.
Yeah, and there are subtle "bug"-type behaviors that are actually correct but incredibly inconvenient. I've gone back and forth on using it (I'll reach for it if I'm just parsing something mostly trivial but not for much else these days).
Kaitai is like protobuf, but for binary formats. It's an incredibly clever way to not write n*m-many parsers for each language. You write a spec for your binary format and the Kaitai libraries in each language can then decode (and presumably encode) the payloads. Gif, wav, pdf, zip, fbx, your custom format, whatever.
This web IDE makes it easy to visualize and develop parser specs against actual data.
Absolutely brilliant ideas!