Hiljuti ilmus uus versioon Kaitai Struct 0.9 — keelekirjeldus ja tööriistade komplekt erinevate binaarvormingute (nt võrgupakettide, piltide/audiote/ videotega failide, andmebaaside, arhiivide, konteinerite jne) parsimiseks. Kuigi versioon 0.9 tundub esmapilgul mitte eriti tõsine, on see oluline väljalaskmine, mis hõlmab kahe ja poole aasta jooksul tehtud edusamme. Selle aja jooksul on keel kasvanud täiendavate projektide peresse:
- kompilaator, mis võimaldab luua spetsifikatsioonifailist (.ksy) valmis parsimise koodi mitmesugustes programmeerimiskeeltes (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), samuti diagramme GraphViz formaadis ja inimesele loetavaid spetsifikatsioone HTML-is;
- vahendid mugavaks spetsifikatsioonide arendamiseks koos samal ajal visuaalse kontrollimisega: Veeb IDE, konsooli visualiseerija, Visual Studio Code'i plugina, Hobbits, Veles, Hiew plugina, Binary Ninja plugina;
- Kaitai Struct'i integreerimise moodulid ehitusprotsessi Maveni jaoks, Gradle'i jaoks, Python'i jaoks, JavaScript/WebPack'i jaoks
- vormingute raamatukogu, kus on sellel väljaandel juba 156 kirjeldust (ja veel 78 vormingut on kodeerimise taotlemisel ülevaatamisel).
- kompressioonialgoritmide teek Kaitai Compress
- FUSE jaoks mõeldud moodul — Kaitai FS, mis võimaldab faili monteerida failisüsteemina, kasutades ksy-formaadi kirjelduse failivormingut
Keel tunnustatud GitHubis ja kasutatakse praegu rohkem kui 400 tasuta / avatud lähtekoodiga projektis, et analüüsida erinevaid eksootilisi andmeformaatide, alustades proprietaarsete mängufailide tagurlisest inseneritööst, lõpetades satelliitide sideprotokollide analüüsiga.
Keele versiooni 0.9 olulisemad uuendused on:
- toetavad uusi sihtkeeli (Python läbi Construct raamatukogu, Nim, HTML-dokumentatsiooni genereerimine)
- täielik tugi kaasaegsele C++-le (nutikad näitajad, mäluhalduse vajaduse puudumine, kõigi tuntud mälulekke variantide parandamine)
- toetavad pesa tüüpide adresseerimist hinnangulise süntaksiga foo::bar::baz
- toetavad lugenud andmete valideerimist kirjeldatud tingimuste (valid) alusel
- staatiliste andmestruktuuride suuruste arvutamine baitides ja bittides (operaatorid sizeof ja bitsizeof)
- formaalse keele kirjeldus JSON-skeemi, millest nüüd genereeritakse dokumentatsioon
Allikas: linux.org.ru

