Sufiĉe lastatempe, la sekva versio de Kaitai Struct 0.9 estis publikigita - priskriba lingvo kaj iloj por analizi diversajn binarajn formatojn (ekzemple, retajn pakaĵojn, bild/son/video dosierojn, datumbazoj, arkivoj, ujoj ktp.). Malgraŭ la frivola aspektanta versio numero 0.9, ĉi tio estas grava eldono, kiu inkluzivas evoluojn dum la pasintaj 2.5 jaroj. Dum ĉi tiu tempo, la lingvo kreskis al tuta familio de projektoj:
- kompililo, kiu ebligas akiri pretan analizan fontkodon en diversaj programlingvoj (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) el formato specifdosiero (.ksy), same kiel diagramoj en la formato GraphViz kaj homlegeblaj formatospecifoj en HTML;
- iloj por oportuna disvolviĝo de specifoj kun samtempa vida kontrolo: Retejo IDE, konzolo-vidigilo, kromaĵo por Visual Studio Code, Hobitoj, Rigardu, kromaĵo por Hiew, kromaĵo por Binary Ninja;
- moduloj por integri Kaitai Struct en la kunigprocezon por Maven, por Gradle, por Python, por JavaScript/WebPack
- formato biblioteko, kiu jam havas 156 priskribojn en ĉi tiu eldono (kaj 78 pliaj formatoj estas en la procezo de tirpeto revizio).
- biblioteko de aldonaĵaj kunpremaj algoritmoj Kaitai Kompreso
- modulo por FUSE - Kaitai FS, kiu permesas vin munti dosieron kiel dosiersistemon, uzante la ksy-priskribon de ĝia formato
Lingvo rekonita de GitHub kaj nun estas uzata en pli ol 400 senpagaj/malfermfontaj projektoj por analizi ĉiajn ekzotikajn datumformatojn, de inversa inĝenierado de proprietaj ludaj datumdosierojkumado analizo de satelitaj komunikadoprotokoloj.
Inter la ĉefaj novigoj de lingvo 0.9 indas reliefigi:
- subteno por novaj cellingvoj (Python per la Biblioteko Construct, Nim, generacio de dokumentado en HTML)
- plena subteno por moderna C++ (inteligentaj montriloj, ne necesas mane administri memoron, riparas ĉiujn konatajn memorlikojn)
- subteno por trakti nestitajn tipojn per sintakso kiel foo::bar::baz
- subteno por validigi legitajn datumojn laŭ la priskribitaj kondiĉoj (valida)
- kalkulante la grandecojn de senmovaj datumstrukturoj en bajtoj kaj bitoj (sizeof kaj bitsizeof operatoroj)
- formala priskribo de lingvo en la formo JSON-skemoj, de kiu nun dokumentaro estas generita
fonto: linux.org.ru