Recentment, s'ha llançat la següent versió de Kaitai Struct 0.9: un llenguatge per descriure i analitzar diversos formats binaris (per exemple, paquets de xarxa, fitxers d'imatge/àudio/vídeo, bases de dades, arxius, contenidors, etc.). Malgrat la versió frívola número 0.9, aquesta és una versió important que inclou desenvolupaments durant els últims 2.5 anys. Durant aquest temps, la llengua ha crescut fins a arribar a tota una família de projectes:
- un compilador que us permet obtenir un codi font d'analitzador ja fet a partir d'un fitxer d'especificació de format (.ksy) en molts llenguatges de programació (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), així com diagrames en el format GraphViz i especificacions de format llegibles per l'home en HTML;
- eines per al desenvolupament d'especificacions còmodes amb control visual simultani: IDE web, renderitzador de consola, Connector per a Visual Studio Code, Hobbits, Veles, Hieu connector, connector per a Binary Ninja;
- mòduls per integrar Kaitai Struct en el procés de muntatge per maven, per gradle, per a Python, per a JavaScript/Webpack
- biblioteca de formats, que ja té 156 descripcions en aquesta versió (i 78 formats més estan en procés de revisió de la sol·licitud d'extracció).
- biblioteca d'algoritmes de compressió connectables Compresa Kaitai
- mòdul per a FUSE - Kaitai FS, que us permet muntar un fitxer com a sistema de fitxers utilitzant la descripció ksy del seu format
Idioma reconegut per GitHub i ara s'utilitza en més de 400 projectes gratuïts / de codi obert per analitzar tot tipus de formats de dades exòtiques, que van des de enginyeria inversa de fitxers de dades de joc propietarisfinal anàlisi de protocols de comunicacions per satèl·lit.
De les principals innovacions del llenguatge 0.9, cal destacar:
- suport per a nous idiomes de destinació (Python a través de la biblioteca Construct, Nim, generació de documentació HTML)
- suport complet per a C++ modern (punters intel·ligents, sense necessitat de gestionar manualment la memòria, solucions per a totes les fuites de memòria conegudes)
- suport per adreçar tipus imbricats mitjançant la sintaxi foo::bar::baz
- suport per a la validació de dades de lectura segons les condicions descrites (vàlid)
- càlcul de les mides de les estructures de dades estàtiques en bytes i bits (operadors sizeof i bitsizeof)
- descripció formal de la llengua en el formulari Esquemes JSON, de la qual ara es genera documentació
Font: linux.org.ru