Состоялся релиз v0.4 проекта Kaitai Struct — декларативного языка для описания форматов структур данных. Описание структуры составляется в виде файла .ksy (в простом YAML-подобном виде), а затем с помощью предлагаемого компилятора транслируется в исходный код парсинга (на данный момент поддерживаются C#, Java, JavaScript, Python, Ruby и предварительно — C++). Типичная сфера применения — разбор и импорт существующих бинарных форматов файлов (в том числе закрытых и проприетарных), сетевых пакетов (например, в составе IDS или систем мониторинга трафика) и т. п.Кроме компилятора, в состав поставки входит визуализатор, с помощью которого удобно отлаживать разрабатываемое описание (особенно, если формат неизвестен и необходимо пробовать много разных гипотез), применяя его сразу к существующему файлу и наблюдая результат парсинга в виде дерева с подсветкой соответствующих элементам этого дерева мест в hex-дампе.Инструментарий распространяется под GPLv3, используемые в компилируемом коде runtime-библиотеки — под MIT/Apache. Референсный компилятор написан на Scala, но существует [ версия для веба на JavaScript ](
http://kaitai.io/repl ) , работающая в браузере целиком на стороне клиента.Из нововведений нового major-релиза можно отметить: поддержку 2 новых целевых языков: полная поддержка C# и предварительная — C++ с STL; полную поддержку JavaScript в runtime-библиотеке; поддержку новых типов данных: числа с плавающей точкой и выделенные типы для массивов байт; расширение встроенного языка выражений: добавлены операции для работы с массивами, преобразования типов данных, доступа к объекту потока и т. п.; существенную переработку и унификацию runtime-библиотек всех поддерживаемых языков для приведения их всех [ к единому API ](
https://github.com/kaitai-io/kaitai_struct/wiki/Kaitai-Struct-stream-API ) (в рамках дозволенного правилами конкретных языков).
Ссылка:
http://www.linux.org.ru/news/opensource/12797115