Kaitai Struct 0.9


Kaitai Struct 0.9

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

Мова визнаний GitHub і використовується зараз у більш ніж 400 free/open source проектах для парсингу всіляких екзотичних форматів даних, починаючи від реверс-інжинірингу файлів даних пропрієтарних ігор, закінчуючи розбором протоколів зв'язку супутників.

З основних новацій мови 0.9 варто виділити:

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

Джерело: linux.org.ru