Релиз системы разбора произвольных бинарных файлов Kaitai Struct 0.4

Поле четырёх месяцев разработки доступен релиз инструментария хKaitai Struct 0.4 — языка для описания форматов сериализации произвольных бинарных структур данных. Идея Kaitai Struct заключается в том, что формат данных описывается с помощью простого декларативного языка на основе YAML, а затем это описание можно скомпилировать в готовый код парсера на любом из поддерживаемых языков. Для облегчения отладки предлагается визуализатор, в котором можно наблюдать, как сериализованная в файле структура раскладывается в дерево взаимосвязанных объектов в соответствии с описанием.

Основные новшества:

  • Поддержка новых целевых языков: полностью поддерживается C#, предварительно поддерживается C++ (на основе стандартной библиотеки STL).
  • Поддержка новых типов данных: типы с плавающей точкой IEEE 754 (одинарной и двойной точности) и выделенный тип для массивов байт
  • Новые возможности языка выражений: методы для обращения к первому и последнему элементам массива, методы преобразования строк в числа, возможность обращения к объекту-потоку (например, для получения размера потока и позиционирования относительно конца структуры)
  • Новые возможности препроцессинга обрабатываемых буферов: XOR с ключом переменной длины
  • Стандартизация API всех runtime-библиотек и приведение их к единому виду (насколько это можно, с соблюдением традиций каждого из целевых языков)
  • Полная реализация API runtime-библиотеки JavaScript (в том числе поддержка 64-битных целых через аппроксимацию в double)

На сайте проекта также доступен компилятор, работающий в браузере (в комплекте с несколькими примерами описаний форматов) -, а также растущая библиотека примеров описаний распространенных форматов.

© OpenNet