Kaitai Struct 0.8

good-penguin.png

После почти 8 месяцев разработки, состоялся очередной релиз Kaitai Struct 0.8 — языка описания и инструментария парсинга всевозможных бинарных форматов (например, сетевых пакетов, файлов с изображениями/аудио/видео, баз данных, архивов, контейнеров и т. д.). Как всегда, в комплекте:

  • компилятор, позволяющий из файла спецификации формата (.ksy) получить готовый исходник парсера на языках C++, C#, Java, JavaScript, Lua, Perl, PHP, Python, Ruby, а также диаграмму в формате GraphViz;
  • Web IDE для удобной разработки спецификаций с одновременным визуальным контролем;
  • библиотека форматов, насчитывающая в этом релизе уже 110 описаний

Список новшеств 0.8 довольно длинный, из основных достижений стоит отметить:

  • поддержку Lua (почти 100%), начальную поддержку Go (~15% тестов проходит);
  • поддержку переключения endianness по результатам вычислимого выражения (сильно упрощает поддержку форматов типа ELF, TIFF и т.п., которые встречаются в двух вариантах endianness)
  • параметрические типы — например, одной такой спецификацией BCD можно пользоваться самых разнообразных BCD, передавая при вызове типа параметрами число цифр, битность одной цифры и порядок их следования;
  • поддержка произвольных кастомных методов процессинга данных (расшифровка, декомпрессия и т.д.) путем подключения модуля на целевом языке программирования; в будущем планируется создание стандартных библиотек для распространенных алгоритмов сжатия, шифрования и обфускации данных;
  • возможность обращаться к индексу итерации в циклах — _index;
  • расширенные возможности документации enum’ов и кросс-ссылок;
  • у проекта появился логотип благодаря сотрудничеству с финским дизайнером Verneri Kontto

Релиз приурочен к пересечению проектом морального рубежа в 1000 stars на GitHub. Команда Kaitai благодарит всех пользующихся за доверие и поддержку и обещает, что дальше будет еще интереснее.

>>> Подробности

©  Linux.org.ru