Nedávno vyšla nová verzia Kaitai Struct 0.9 — jazyka na opis a nástroja pre analýzu rôznych binárnych formátov (napríklad sieťových paketov, súborov s obrázkami/audiom/videom, databáz, archívov, kontajnerov a pod.). Napriek seriózne vyzerajúcemu číslu verzie 0.9 — ide o významnú verziu, ktorá zahŕňa vývoj za posledné 2,5 roka. Počas tohto obdobia jazyk vyrástol na celé rodiny projektov:
- kompilátor, ktorý umožňuje z súboru špecifikácie formátu (.ksy) získať hotový zdrojový kód analyzátora v mnohých programovacích jazykoch (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), ako aj diagramy vo formáte GraphViz a ľahko čitateľné špecifikácie formátov v HTML;
- nástroje pre pohodlný vývoj špecifikácií s súčasným vizuálnym overením: Web IDE, konzolový vizualizátor, plugin pre Visual Studio Code, Hobbits, Veles, plugin pre Hiew, plugin pre Binary Ninja;
- moduly na integráciu Kaitai Struct do procesu zostavovania pre Maven, pre Gradle, pre Python, pre JavaScript/WebPack
- knižnica formátov, ktorá v tejto verzii obsahuje už 156 opisov (a ďalších 78 formátov je v procese kontroly pull requestu).
- knižnica rozširujúcich algoritmov kompresie Kaitai Compress
- modul pre FUSE — Kaitai FS, ktorý umožňuje pripojiť súbor ako súborový systém, používajúc ksy-špecifikáciu jeho formátu
Jazyk je uznaný GitHubom a momentálne sa používa vo viac než 400 free/open source projektoch na analýzu rôznych exotických formátov dát, od reverzného inžinierstva dátových súborov proprietárnych hier, až po analýzu komunikačných protokolov satelitov..
Z hlavných noviniek jazyka 0.9 stojí za zmienku:
- podpora nových cieľových jazykov (Python cez knižnicu Construct, Nim, generovanie dokumentácie v HTML)
- plnohodnotná podpora moderného C++ (inteligentné ukazatele, absencia potreby manuálne spravovať pamäť, odstránenie všetkých známych variantov únikov pamäte)
- podpora adresovania vnorených typov cez syntax typu foo::bar::baz
- podpora validácie prečítaných dát podľa opísaných podmienok (valid)
- výpočet rozmerov statických štruktúr dát v bajtoch a bitoch (operátory sizeof a bitsizeof)
- formálny opis jazyka vo forme JSON schémy, z ktorej sa teraz generuje dokumentácia
Zdroj: linux.org.ru

