Kamakailan lamang, ang susunod na bersyon ng Kaitai Struct 0.9 ay inilabas - isang wika ng paglalarawan at mga tool para sa pag-parse ng iba't ibang mga binary na format (halimbawa, mga network packet, image/audio/video file, database, archive, container, atbp.). Sa kabila ng mukhang walang kuwentang bersyon na numero 0.9, isa itong pangunahing release na kinabibilangan ng mga development sa nakalipas na 2.5 taon. Sa panahong ito, ang wika ay lumago sa isang buong pamilya ng mga proyekto:
- isang compiler na nagbibigay-daan sa iyo upang makakuha ng isang handa na parser source code sa iba't ibang mga programming language (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) mula sa isang format file ng detalye (.ksy), pati na rin ang mga diagram sa format na GraphViz at mga detalye ng format na nababasa ng tao sa HTML;
- mga tool para sa maginhawang pagbuo ng mga pagtutukoy na may sabay-sabay na visual na kontrol: Web IDE, console visualizer, plugin para sa Visual Studio Code, Mga Hobbits, Veles, plugin para sa Hiew, plugin para sa Binary Ninja;
- mga module para sa pagsasama ng Kaitai Struct sa proseso ng pagpupulong para kay Maven, para kay Gradle, para sa Python, para sa JavaScript/WebPack
- format ng library, na mayroon nang 156 na paglalarawan sa release na ito (at 78 pang mga format ay nasa proseso ng pagsusuri ng kahilingan sa paghila).
- library ng plug-in compression algorithm Kaitai Compress
- module para sa FUSE - Kaitai FS, na nagbibigay-daan sa iyong mag-mount ng file bilang isang file system, gamit ang ksy na paglalarawan ng format nito
Wika kinikilala ng GitHub at ngayon ay ginagamit sa higit sa 400 libre / open source na mga proyekto para sa pag-parse ng lahat ng uri ng kakaibang mga format ng data, mula sa reverse engineering proprietary game data filecumming pagsusuri ng mga protocol ng komunikasyon ng satellite.
Kabilang sa mga pangunahing pagbabago ng wika 0.9 ito ay nagkakahalaga ng pag-highlight:
- suporta para sa mga bagong target na wika (Python sa pamamagitan ng Construct library, Nim, pagbuo ng dokumentasyon sa HTML)
- buong suporta para sa modernong C++ (smart pointer, hindi na kailangang manu-manong pamahalaan ang memorya, inaayos ang lahat ng kilalang memory leaks)
- suporta para sa pagtugon sa mga nested na uri sa pamamagitan ng syntax tulad ng foo::bar::baz
- suporta para sa pagpapatunay ng nabasang data ayon sa inilarawan na mga kondisyon (wasto)
- pagkalkula ng mga sukat ng mga static na istruktura ng data sa mga byte at bits (sizeof at bitsizeof operator)
- pormal na paglalarawan ng isang wika sa anyo Mga schema ng JSON, kung saan ngayon nabuo ang dokumentasyon
Pinagmulan: linux.org.ru