Pavisam nesen tika izlaista nākamā Kaitai Struct 0.9 versija - apraksta valoda un rīki dažādu bināro formātu (piemēram, tīkla pakešu, attēlu/audio/video failu, datubāzu, arhīvu, konteineru u.c.) parsēšanai. Neskatoties uz vieglprātīgo versijas numuru 0.9, šis ir nozīmīgs laidiens, kas ietver attīstību pēdējo 2.5 gadu laikā. Šajā laikā valoda ir izaugusi par veselu projektu saimi:
- kompilators, kas ļauj iegūt gatavu parsētāja pirmkodu dažādās programmēšanas valodās (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) no formāta specifikācijas fails (.ksy), kā arī diagrammas formātā GraphViz un cilvēkam lasāma formāta specifikācijas HTML valodā;
- rīki ērtai specifikāciju izstrādei ar vienlaicīgu vizuālo kontroli: Web IDE, konsoles vizualizētājs, Visual Studio Code spraudnis, Hobiji, Veles, spraudnis Hiew, spraudnis Binary Ninja;
- moduļi Kaitai Struct integrēšanai montāžas procesā Mavenam, par Gradle, par Python, JavaScript/WebPack
- formāta bibliotēka, kam šajā laidienā jau ir 156 apraksti (un Vēl 78 formāti tiek pārskatīšanas pieprasījums).
- spraudņu saspiešanas algoritmu bibliotēka Kaitai komprese
- modulis FUSE - Kaitai FS, kas ļauj pievienot failu kā failu sistēmu, izmantojot tā formāta ksy aprakstu
Valoda atpazīst GitHub un tagad tiek izmantots vairāk nekā 400 bezmaksas/atvērtā koda projektos visu veidu eksotisku datu formātu parsēšanai, sākot no reversās inženierijas patentēti spēļu datu failicumming satelītu sakaru protokolu analīze.
Starp galvenajiem valodas 0.9 jauninājumiem ir vērts izcelt:
- atbalsts jaunām mērķa valodām (Python, izmantojot Construct bibliotēku, Nim, dokumentācijas ģenerēšana HTML formātā)
- pilns mūsdienu C++ atbalsts (viedie norādes, nav nepieciešams manuāli pārvaldīt atmiņu, novērš visas zināmās atmiņas noplūdes)
- atbalsts ligzdoto tipu adresēšanai, izmantojot sintaksi, piemēram, foo::bar::baz
- atbalsts nolasīto datu validēšanai saskaņā ar aprakstītajiem nosacījumiem (derīgs)
- statisko datu struktūru lieluma aprēķināšana baitos un bitos (operatoru lielums un bitu lielums)
- formāls valodas apraksts formā JSON shēmas, no kura tagad tiek ģenerēta dokumentācija
Avots: linux.org.ru