После почти 8 месяцев разработки, состоялся очередной релиз Kaitai Struct 0.8 — языка описания и инструментария парсинга всевозможных бинарных форматов (например, сетевых пакетов, файлов с изображениями/аудио/видео, баз данных, архивов, контейнеров и т. д.). Как всегда, в комплекте: компилятор, позволяющий из файла спецификации формата (.ksy) получить готовый исходник парсера на языках C++, C#, Java, JavaScript, Lua, Perl, PHP, Python, Ruby, а также диаграмму в формате GraphViz; [ Web IDE ](
https://ide.kaitai.io/ ) для удобной разработки спецификаций с одновременным визуальным контролем; [ библиотека форматов ](
http://formats.kaitai.io/ ) , насчитывающая в этом релизе уже 110 описаний Список новшеств 0.8 довольно длинный, из основных достижений стоит отметить: поддержку Lua (почти 100%), начальную поддержку Go (~15% тестов проходит); поддержку переключения endianness по результатам вычислимого выражения (сильно упрощает поддержку форматов типа ELF, TIFF и т.п., которые встречаются в двух вариантах endianness) параметрические типы — например, [ одной такой спецификацией BCD ](
http://formats.kaitai.io/bcd/ ) можно пользоваться самых разнообразных BCD, передавая при вызове типа параметрами число цифр, битность одной цифры и порядок их следования; поддержка произвольных кастомных методов процессинга данных (расшифровка, декомпрессия и т.д.) путем подключения модуля на целевом языке программирования; в будущем планируется создание стандартных библиотек для распространенных алгоритмов сжатия, шифрования и обфускации данных; возможность обращаться к индексу итерации в циклах — _index; расширенные возможности документации enum'ов и кросс-ссылок; у проекта появился логотип благодаря сотрудничеству с финским дизайнером Verneri Kontto Релиз приурочен к пересечению проектом морального рубежа в 1000 stars на GitHub. Команда Kaitai благодарит всех пользующихся за доверие и поддержку и обещает, что дальше будет еще интереснее.
Ссылка:
https://www.linux.org.ru/news/opensource/14004679