Kaitai Struct 0.9

Вторник, 20 октября 2020 г.

Следите за нами в ВКонтакте, Facebook'e и Twitter'e

Cовсем недавно вышла очередная версия Kaitai Struct 0.9 — языка описания и инструментария парсинга всевозможных бинарных форматов (например, сетевых пакетов, файлов с изображениями/аудио/видео, баз данных, архивов, контейнеров и т. д.). Несмотря на несерьезно выглядящий номер версии 0.9 — это крупный релиз, включающий в себя наработки за последние 2.5 года. За это время язык вырос до целого семейства проектов:

компилятор, позволяющий из файла спецификации формата (.ksy) получить готовый исходник парсера на множестве языков программирования (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), а также диаграммы в формате GraphViz и человеко-читаемые спецификации форматов в HTML;
инструменты для удобной разработки спецификаций с одновременным визуальным контролем: Web IDE, консольный визуализатор, плагин для Visual Studio Code, Hobbits, Veles, плагин для Hiew, плагин для Binary Ninja;
модули для интеграции Kaitai Struct в процесс сборки для Maven, для Gradle, для Python, для JavaScript/WebPack
библиотека форматов, насчитывающая в этом релизе уже 156 описаний (и еще 78 форматов находятся в процессе pull request review).
библиотека подключаемых алгоритмов компрессии Kaitai Compress
модуль для FUSE — Kaitai FS, позволяющий замонтировать файл, как файловую систему, используя ksy-описание его формата

Язык признан GitHub и используется сейчас в более, чем 400 free / open source проектах для парсинга всевозможных экзотических форматов данных, начиная от реверс-инжиниринга файлов данных проприетарных игр, кончая разбором протоколов связи спутников.

Из основных новшеств языка 0.9 стоит выделить:

поддержка новых целевых языков (Python через библиотеку Construct, Nim, генерацию документации в HTML)
полноценную поддержку современных C++ (smart pointers, отсутствие необходимости вручную управлять памятью, исправление всех известных вариантов утечек памяти)
поддержку адресации вложенных типов через синтаксис вида foo::bar::baz
поддержку валидации прочитанных данных по описанным условиям (valid)
вычисление размеров статических структур данных в байтах и битах (операторы sizeof и bitsizeof)
формальное описание языка в виде JSON-схемы, из которой теперь генерируется документация

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

Следите за нами в ВКонтакте, Facebook'e и Twitter'e


Просмотров: 397
Рубрика: Hi-Tech


Архив новостей / Экспорт новостей

Ещё новости по теме:

RosInvest.Com не несет ответственности за опубликованные материалы и комментарии пользователей. Возрастной цензор 16+.

Ответственность за высказанные, размещённую информацию и оценки, в рамках проекта RosInvest.Com, лежит полностью на лицах опубликовавших эти материалы. Использование материалов, допускается со ссылкой на сайт RosInvest.Com.

Архивы новостей за: 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003