Bag-o lang, ang sunod nga bersyon sa Kaitai Struct 0.9 gipagawas - usa ka paghulagway sa pinulongan ug mga himan alang sa pag-parse sa nagkalain-laing binary format (pananglitan, network packets, image/audio/video files, databases, archives, containers, etc.). Bisan pa sa walay hinungdan nga tan-awon nga bersyon nga numero 0.9, kini usa ka mayor nga pagpagawas nga naglakip sa mga kalamboan sa miaging 2.5 ka tuig. Niini nga panahon, ang pinulongan mitubo ngadto sa tibuok pamilya sa mga proyekto:
- usa ka compiler nga nagtugot kanimo nga makakuha og andam nga parser source code sa lain-laing mga programming language (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) gikan sa usa ka format specification file (.ksy), ingon man ang mga diagram sa format nga GraphViz ug mga detalye sa format nga mabasa sa tawo sa HTML;
- mga himan alang sa dali nga pag-uswag sa mga detalye nga adunay dungan nga pagkontrol sa biswal: Web IDE, console visualizer, plugin alang sa Visual Studio Code, Mga Hobbit, Veles, plugin para sa Hiew, plugin alang sa Binary Ninja;
- modules alang sa paghiusa sa Kaitai Struct ngadto sa proseso sa asembliya alang kang Maven, para sa Gradle, alang sa Python, para sa JavaScript/WebPack
- format nga librarya, nga aduna nay 156 ka deskripsyon niini nga pagpagawas (ug 78 pa nga mga format anaa sa proseso sa pagrepaso sa hangyo sa pagbitad).
- librarya sa plug-in compression algorithms Kaitai Compress
- module para sa FUSE - Kaitai FS, nga nagtugot kanimo sa pag-mount sa usa ka file ingon usa ka file system, gamit ang ksy nga paghulagway sa format niini
Pinulongan giila sa GitHub ug karon gigamit sa labaw pa sa 400 nga libre / bukas nga gigikanan nga mga proyekto alang sa pag-parse sa tanan nga mga lahi sa exotic nga mga format sa datos, gikan sa reverse engineering proprietary game data filescumming pag-analisar sa mga protocol sa komunikasyon sa satellite.
Lakip sa mga nag-unang mga inobasyon sa pinulongan 0.9 angay nga ipasiugda:
- suporta alang sa bag-ong target nga mga pinulongan (Python pinaagi sa Construct library, Nim, henerasyon sa dokumentasyon sa HTML)
- bug-os nga suporta alang sa modernong C ++ (smart pointer, dili kinahanglan nga mano-mano nga pagdumala sa panumduman, ayohon ang tanan nga nahibal-an nga pagtulo sa memorya)
- suporta para sa pagsulbad sa mga nested type pinaagi sa syntax sama sa foo::bar::baz
- suporta alang sa pag-validate sa nabasa nga datos sumala sa gihulagway nga mga kondisyon (balido)
- pagkalkulo sa mga gidak-on sa static nga mga istruktura sa datos sa bytes ug bits (gidak-on ug bitsize sa mga operator)
- pormal nga paghulagway sa usa ka pinulongan sa porma Mga laraw sa JSON, diin gikan karon namugna ang dokumentasyon
Source: linux.org.ru