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, slike/audio/video datoteke, baze podataka, arhive, kontejneri, itd.). Uprkos neozbiljnom izgledu verzije 0.9, ovo je veliko izdanje koje uključuje razvoje u protekle 2.5 godine. Za to vrijeme jezik je prerastao u čitavu porodicu projekata:
- kompajler koji vam omogućava da dobijete gotov izvorni kod parsera u raznim programskim jezicima (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) iz formata datoteku specifikacije (.ksy), kao i dijagrame u formatu GraphViz i specifikacije čitljivog formata u HTML-u;
- alati za praktičan razvoj specifikacija uz istovremenu vizualnu kontrolu: Web IDE, vizualizator konzole, dodatak za Visual Studio Code, Hobiti, Veles, dodatak za Hiew, dodatak za Binary Ninja;
- moduli za integraciju Kaitai Struct-a u proces montaže za Maven, za Gradle, za Python, za JavaScript/WebPack
- biblioteka formata, koji već ima 156 opisa u ovom izdanju (i Još 78 formata su u procesu pregleda zahtjeva za povlačenje).
- biblioteka algoritama za kompresiju dodataka Kaitai Compress
- modul za FUSE - Kaitai FS, koji vam omogućava da montirate datoteku kao sistem datoteka, koristeći ksy opis njenog formata
Jezik prepoznao GitHub i sada se koristi u više od 400 besplatnih / open source projekata za raščlanjivanje svih vrsta egzotičnih formata podataka, u rasponu od obrnuti inženjering vlasničke datoteke podataka igrecumming analiza satelitskih komunikacijskih protokola.
Među glavnim inovacijama jezika 0.9 vrijedi istaknuti:
- podrška za nove ciljne jezike (Python preko Construct biblioteke, Nim, generiranje dokumentacije u HTML-u)
- puna podrška za moderni C++ (pametni pokazivači, nema potrebe za ručno upravljanje memorijom, popravlja sva poznata curenja memorije)
- podrška za adresiranje ugniježđenih tipova putem sintakse kao što je foo::bar::baz
- podrška za validaciju pročitanih podataka prema opisanim uslovima (ispravno)
- izračunavanje veličine statičkih struktura podataka u bajtovima i bitovima (sizeof i bitsizeof operatori)
- formalni opis jezika u formi JSON šeme, iz kojeg sada generira se dokumentacija
izvor: linux.org.ru