Nedávno byla vydána nová verze Kaitai Struct 0.9 — jazyka pro popis a nástroj pro analýzu různých binárních formátů (například síťových paketů, souborů s obrázky/audiem/videem, databází, archivů, kontejnerů atd.). Ačkoli má číslo verze 0.9, což vypadá nezávazně — jde o významné vydání, které zahrnuje práci za poslední 2,5 roku. Během této doby se jazyk rozrostl na celou rodinu projektů:
- kompilátor, který umožňuje převést soubor se specifikací formátu (.ksy) na hotový zdrojový kód parseru v mnoha programovacích jazycích (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), stejně jako diagramy ve formátu GraphViz a čitelně napsané specifikace formátů v HTML;
- nástroje pro pohodlný vývoj specifikací s vizuální kontrolou v reálném čase: Web IDE, konzolový vizualizátor, plugin pro Visual Studio Code, Hobbits, Veles, plugin pro Hiew, plugin pro Binary Ninja;
- moduly pro integraci Kaitai Struct do procesu sestavení pro Maven, pro Gradle, pro Python, pro JavaScript/WebPack
- knihovna formátů, která v této verzi obsahuje již 156 popisů (a dalších 78 formátů je v procesu revize pull requestu).
- knihovna připojitelných algoritmů komprese Kaitai Compress
- modul pro FUSE — Kaitai FS, který umožňuje připojit soubor jako souborový systém pomocí ksy popisu jeho formátu
Jazyk byl uznán GitHubem a v současnosti se používá ve více než 400 free/open source projektech pro analýzu různých exotických formátů dat, počínaje reverse engineeringem datových souborů proprietárních her, konče analýzou protokolů pro satelitní komunikaci.
Mezi hlavními novinkami jazyka 0.9 stojí za zmínku:
- podpora nových cílových jazyků (Python prostřednictvím knihovny Construct, Nim, generování dokumentace v HTML)
- plnohodnotná podpora moderního C++ (chytré ukazatele, odstranění nutnosti ruční správy paměti, opravy všech známých případů úniků paměti)
- podpora adresace vnořených typů prostřednictvím syntaxe jako foo::bar::baz
- podpora validace přečtených dat podle popsaných podmínek (valid)
- výpočet velikostí statických datových struktur v bajtech a bitech (operátory sizeof a bitsizeof)
- formální popis jazyka ve formě JSON schématu, z nějž je nyní generována dokumentace
Zdroj: linux.org.ru

