2016-08-09: Kaitai Struct v0.4 released

Kaitai project is happy to announce release of new major version of Kaitai Struct, declarative markup language to describe various binary data structures — binary file formats, network stream packets, etc.

The basic idea of Kaitai Struct is that a particular format can be described using Kaitai Struct language (in a .ksy file), which then can be compiled using ksc into source files in one of the supported programming languages. These modules will include a generated code for a parser that can read described data structure from a file / stream and provide access to its contents in a nice, easy-to-comprehend API.

Release highlights

  • Languages support:
    • New target language, fully supported: C# (modules should be usable all across the .NET platform, i.e. from C++/CLI, VB.NET, F#, etc.
    • Preliminary support for C++ (with STL containers / IO implementation) — note that not all features are implemented.
    • Existing support: Java, JavaScript, Python, Ruby.
  • Data types:
    • Floating point data types support (available as f4 and f8 for single and double precision IEEE754 floats)
    • Separate data type for byte arrays (including support for literal byte arrays)
  • Expressions language:
    • Added new testing framework for expression translators
    • Added .first and .last for arrays (getting first and last element of array)
    • Added .to_i for strings (string -> int conversion)
    • Support for accessing _io object (IO stream) to access current stream's size (_io.size)
  • Processing: extended "xor" processing to support XORing with multi-byte keys
  • Runtime libraries:
    • Lots of cleanup - now all libraries try to follow the same strict standard (with method naming, parameters, order of methods, etc).
    • JavaScript: implemented full streaming API (both signed & unsigned integer, ensuring fixed contents fields, approximated 64-bit integers, etc).

0.4 released 2016-08-09


Try in browser