Visai neseniai buvo išleista kita Kaitai Struct 0.9 versija - aprašo kalba ir įrankiai, skirti analizuoti įvairius dvejetainius formatus (pavyzdžiui, tinklo paketus, vaizdo/garso/video failus, duomenų bazes, archyvus, konteinerius ir kt.). Nepaisant nerimtos išvaizdos versijos 0.9, tai yra pagrindinis leidimas, apimantis per pastaruosius 2.5 metų pokyčius. Per šį laiką kalba išaugo į visą projektų šeimą:
- kompiliatorius, leidžiantis gauti paruoštą analizavimo šaltinio kodą įvairiomis programavimo kalbomis (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) iš formato specifikacijų failą (.ksy), taip pat diagramas GraphViz formatu ir žmogaus skaitomo formato specifikacijas HTML;
- įrankiai patogiam specifikacijų kūrimui kartu su vizualiniu valdymu: Web IDE, konsolės vizualizatorius, „Visual Studio Code“ papildinys, Hobitai, Veles, Hiew įskiepis, Binary Ninja papildinys;
- moduliai, skirti Kaitai Struct integruoti į surinkimo procesą už Maveną, už Gradle, skirtas Python, „JavaScript“ / „WebPack“.
- formato biblioteka, kurios šiame leidime jau yra 156 aprašymai (ir Dar 78 formatai šiuo metu peržiūrimos užklausos procesas).
- Papildinių glaudinimo algoritmų biblioteka Kaitai kompresas
- modulis FUSE - Kaitai FS, kuri leidžia prijungti failą kaip failų sistemą, naudojant ksy jo formato aprašymą
Kalba pripažino GitHub ir dabar naudojama daugiau nei 400 nemokamų / atvirojo kodo projektų, skirtų visų rūšių egzotiškų duomenų formatų analizei, pradedant nuo atvirkštinės inžinerijos patentuoti žaidimų duomenų failaicumming palydovinio ryšio protokolų analizė.
Tarp pagrindinių 0.9 kalbos naujovių verta pabrėžti:
- naujų tikslinių kalbų palaikymas (Python per Construct biblioteką, Nim, dokumentacijos generavimas HTML)
- Visiškas šiuolaikinio C++ palaikymas (išmaniosios rodyklės, nereikia rankiniu būdu valdyti atminties, ištaiso visus žinomus atminties nutekėjimus)
- įdėtųjų tipų adresų palaikymas naudojant sintaksę, pvz., foo::bar::baz
- palaikymas nuskaitytų duomenų patvirtinimui pagal aprašytas sąlygas (galioja)
- statinių duomenų struktūrų dydžių baitais ir bitais apskaičiavimas (operatorių dydis ir bitų dydis)
- formalus kalbos aprašymas formoje JSON schemos, iš kurios dabar sukuriama dokumentacija
Šaltinis: linux.org.ru