Pavisam nesen tika izlaista kārtējā Kaitai Struct 0.9 versija — aprakstīšanas valoda un rīku komplekts dažādu bināro formātu parsēšanai (piemēram, tīkla paketes, attēlu/audu/video failus, datubāzes, arhīvus, konteinerus u.tml.). Neskatoties uz nesarežģīto versijas numuru 0.9 — tā ir liela versija, kas ietver izstrādi, kas veikta pēdējo 2,5 gadu laikā. Šajā laikā valoda ir izaugusi līdz vesela projektu ģimenei:
- kompilators, kas ļauj no formāta specifikācijas faila (.ksy) iegūt gatavu parsēšanas avotu daudzu programmēšanas valodu (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) formātā, kā arī diagrammas GraphViz formātā un cilvēkiem lasāmas formātu specifikācijas HTML formātā;
- rīki, kas atvieglo specifikāciju izstrādi ar vienlaicīgu vizuālo kontroli: Web IDE, konsoles vizualizators, paplašinājums Visual Studio Code, Hobbits, Veles, paplašinājums Hiew, paplašinājums Binary Ninja;
- moduļi, kas nodrošina Kaitai Struct integrāciju būvniecības procesā Maven, Gradle, Python, JavaScript/WebPack
- formātu bibliotēka, kurā šajā versijā jau ir 156 apraksti (un vēl 78 formāti ir apspriešanas procesā pull request review).
- kompresijas algoritmu paplašinājumu bibliotēka Kaitai Compress
- modulis FUSE — Kaitai FS, ļaujot pievienot failu kā failu sistēmu, izmantojot ksy aprakstu tā formātam
Valoda atzīts GitHub un šobrīd tiek izmantots vairāk nekā 400 bezmaksas / atvērtā koda projektos, lai parsētu dažādus eksotiskos datu formātus, sākot no datu failu atpakaļizstrādes no proprietārām spēlēm, beidzot ar sakaru protokolu parsēšanu ar satelītiem..
No galvenajām valodas 0.9 inovācijām jāizceļ:
- jauno mērķa valodu atbalsts (Python, izmantojot Construct bibliotēku, Nim, dokumentācijas ģenerēšana HTML formātā)
- pilnvērtīga mūsdienu C++ atbalsta nodrošināšana (smart pointers, nav nepieciešamības manuāli pārvaldīt atmiņu, visu zināmo atmiņas noplūžu labojumi)
- vīruso struktūru adresēšanas atbalsts, izmantojot sintaksi foo::bar::baz
- izlasīto datu validācijas atbalsts atbilstoši aprakstītajiem nosacījumiem (valid)
- statisko datu struktūru izmēru aprēķināšana baitos un bitos (operators sizeof un bitsizeof)
- valodas formāla apraksts kā JSON shēma, no kuras tagad ģenerē dokumentāciju
Avots: linux.org.ru

