Релиз системы разбора произвольных бинарных файлов 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