Are there offline tools for snooping *.ji files?

If I understand correctly, most of the loading of the *.ji file is done by C code, and the parsing and applying phases are not (yet) well separated. This makes it difficult to analyze the contents of the *.ji file without causing side effects to the world.

I’ve faced pre-compilation issues several times in package development, and I have no choice but to wait and trust that the core developers of Julia will fix the problems.

I think tools like a protocol analyzer, which provide data structure analysis and annotated HEX dumps, would be helpful in clarifying the problems.

Does such tools exist? Or do you think such a tool would be helpful?

4 Likes

That would be very nice indeed. Base.parse_cache_header loads the header, but the more detailed contents are not available from within Julia as far as I know.

3 Likes

First, I would like to explore whether the tools of the Kaitai Struct could be used for this purpose. Apart from that, it might be useful to port the Kaitai Struct Compiler to Julia.

(Note that some of the tutorials linked from the documentation may be NSFW. :sweat_smile:)

BTW, the ksy file equivalent to Base.parse_cache_header has been completed.


I’m translating the serializer part into ksy, bit by bit. I am puzzled by the subtle incompatibility with Serialization. :smile:

(Kaitai Web IDE is a great tool, but it seems to have some minor bugs (e.g. LSB of uuidHi/uuidLo). Also the extension for VS Code is somewhat unstable as the author mentioned.)

2 Likes