This repository constitutes a library of ready-made binary file format
descriptions using Kaitai Struct language (.ksy
).
These formats can be useful for:
-
exploring a certain file format internals: one can load
.ksy
format + target binary in a Web IDE or visualizer and learn what's inside; -
as a production-ready binary file parsing library: they can be compiled with a Kaitai Struct compiler into source code in any supported target programming language;
-
as a starting point for learning applications of Kaitai Struct in real world;
If you want to explore the repository, please visit Kaitai Struct format gallery — that's HTML rendition of this repository, which block diagrams, all the code compiled for all possible target languages, provided with usage examples and instructions, etc, etc.
Alternatively, you can start with Web IDE — this library of formats also comes pre-loaded with it.
If you've developed a format specification using Kaitai Struct and would like to make the world a little better by sharing your knowledge, so other fellow developers don't have to redo the same parsing task again and again from scratch — that's great, your contribution would be most welcome!
Please follow these steps:
- Choose open source license for your .ksy
- Ensure that your .ksy file passes basic checklist:
- It MUST compile without errors with ksc
- It MUST have licensing information (
meta/license
tag with valid SPDX open source license expression is mandatory, licensing comment is optional) - It SHOULD have some general information about the format and some
documentation (
meta/title
,meta/file-extension
,meta/application
,doc
,doc-ref
tags).
- Fork this repository
- Choose a relevant folder and add your .ksy spec into it
- Create a "pull request" at GitHub to pull your specs into this repo
- Please add some general information about the formats and some instructions on how could we test it (i.e. where can we find sample files in that format, etc)
This repository contains work of many individuals. Each .ksy is
licensed separately: please see meta/license
tag and comments in
every .ksy file for permissions. Kaitai team claims no copyright over
other people's contributions.