Nedavno je objavljena sljedeća verzija Kaitai Struct 0.9 - jezik opisa i alati za raščlanjivanje različitih binarnih formata (na primjer, mrežni paketi, slikovne/audio/video datoteke, baze podataka, arhive, spremnici itd.). Unatoč neozbiljnom izgledu verzije broj 0.9, ovo je veliko izdanje koje uključuje razvoj u protekle 2.5 godine. Tijekom tog vremena jezik je izrastao u cijelu obitelj projekata:
- kompajler koji vam omogućuje da dobijete gotov izvorni kod parsera u različitim programskim jezicima (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) iz formata specifikacijsku datoteku (.ksy), kao i dijagrame u formatu GraphViz i specifikacije formata čitljive za čovjeka u HTML-u;
- alati za praktičan razvoj specifikacija uz istodobnu vizualnu kontrolu: Web IDE, vizualizator konzole, dodatak za Visual Studio Code, Hobiti, Veles, dodatak za Hiew, dodatak za Binary Ninju;
- moduli za integraciju Kaitai Structa u proces montaže za Mavena, za Gradle, za Python, za JavaScript/WebPack
- biblioteka formata, koji već ima 156 opisa u ovom izdanju (i Još 78 formata su u postupku pregleda zahtjeva za povlačenje).
- biblioteka plug-in algoritama kompresije Kaitai oblog
- modul za OSIGURAČ - Kaitai FS, koji vam omogućuje montiranje datoteke kao datotečnog sustava, koristeći ksy opis njenog formata
Jezik prepoznao GitHub i sada se koristi u više od 400 besplatnih/otvorenih projekata za analizu svih vrsta egzotičnih formata podataka, u rasponu od obrnuti inženjering vlasničke podatkovne datoteke igresvršavanje analiza satelitskih komunikacijskih protokola.
Među glavnim inovacijama jezika 0.9 vrijedi istaknuti:
- podrška za nove ciljane jezike (Python preko biblioteke Construct, Nim, generiranje dokumentacije u HTML-u)
- puna podrška za moderni C++ (pametni pokazivači, nema potrebe za ručnim upravljanjem memorijom, popravlja sva poznata curenja memorije)
- podrška za adresiranje ugniježđenih tipova putem sintakse poput foo::bar::baz
- podrška za provjeru valjanosti pročitanih podataka prema opisanim uvjetima (važi)
- izračunavanje veličina statičkih struktura podataka u bajtovima i bitovima (operatori sizeof i bitsizeof)
- formalni opis jezika u obliku JSON sheme, iz koje sada dokumentacija se generira
Izvor: linux.org.ru