Nemrégiben megjelent a Kaitai Struct 0.9 új verziója — egy leíró nyelv és eszközkészlet különféle bináris formátumok (például hálózati csomagok, képfájlok/audiovizuális anyagok, adatbázisok, archívumok, konténerek stb.) elemzéséhez. Bár a 0.9-es verziószám elég kicsinek tűnik — ez egy jelentős kiadás, amely az elmúlt 2,5 év fejlesztéseit tartalmazza. Ez idő alatt a nyelv egy teljes projektcsaláddá fejlődött:
- egy fordító, amely lehetővé teszi, hogy a formátum (.ksy) specifikációs fájlból kész parsert generáljunk számos programozási nyelven (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), illetve GraphViz formátumú diagramokat és ember által olvasható formátum specifikációkat HTML-ben;
- az egyszerűsített specifikációk fejlesztésére szolgáló eszközök, amelyek egyidejű vizuális ellenőrzéssel járnak: Web IDE, konzolos vizualizáló, Visual Studio Code bővítmény, Hobbits, Veles, Hiew bővítmény, Binary Ninja bővítmény;
- modulok a Kaitai Struct integrálására a gyűjtési folyamatba Maven-hez, Gradle-hez, Python-hoz, JavaScript/WebPack-hez
- formátumok könyvtára, amelyben ebben a kiadásban már 156 leírás található (és még 78 formátum jelenleg pull request felülvizsgálat alatt áll).
- összekapcsolható tömörítési algoritmusok könyvtára Kaitai Compress
- FUSE modul — Kaitai FS, amely lehetővé teszi egy fájl fájlrendszerként való csatolását a formátum .ksy leírásának felhasználásával
Nyelv a GitHub által elismert és jelenleg több mint 400 ingyenes / nyílt forráskódú projektben használják különféle egzotikus adatformátumok feldolgozására, kezdve a proprietáris játékok adatfájljainak visszafejlesztésével, befejezve a műholdas kommunikációs protokollok elemzésével..
A 0.9 nyelv legfontosabb újdonságai közé tartozik:
- új célzott nyelvek támogatása (Python a Construct könyvtáron keresztül, Nim, HTML dokumentáció generálása)
- a modern C++ teljes támogatása (okos mutatók, a memória manuális kezelése nem szükséges, minden ismert memória szivárgás javítása)
- a beágyazott típusok címkézésének támogatása foo::bar::baz típusú szintaxissal
- a beolvasott adatok validálásának támogatása a leírt feltételek szerint (valid)
- statikus adattípusok méretének kiszámítása bájtokban és bitekben (sizeof és bitsizeof operátorok)
- a nyelv formális leírása JSON séma formájában, amelyből most dokumentáció generálódik
Forrás: linux.org.ru

