Nyligen slĂ€pptes den senaste versionen av Kaitai Struct 0.9 â ett sprĂ„k för beskrivning och verktyg för parsing av olika binĂ€ra format (till exempel nĂ€tverksprotokoll, filer med bilder/ljud/video, databaser, arkiv,Containrar och sĂ„ vidare). Trots det lite skĂ€mtsamma versionsnumret 0.9 â Ă€r detta en stor release som inkluderar framsteg under de senaste 2,5 Ă„ren. Under den tiden har sprĂ„ket vĂ€xt till en hel familj av projekt:
- en kompilator som gör det möjligt att frÄn en format-specifikationsfil (.ksy) generera en fÀrdig parser-kÀllkod pÄ flera programmeringssprÄk (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), samt diagram i GraphViz-format och lÀsbara format-specifikationer i HTML;
- verktyg för bekvÀm utveckling av specifikationer med samtidig visuell kontroll: Web IDE, konsolvisualiserare, plugin för Visual Studio Code, Hobbits, Veles, plugin för Hiew, plugin för Binary Ninja;
- moduler för att integrera Kaitai Struct i byggprocessen för Maven, för Gradle, för Python, för JavaScript/WebPack
- formatbibliotek, som i denna release redan innehÄller 156 beskrivningar (och ytterligare 78 format Àr under granskning av pull request).
- ett bibliotek med pluggbara komprimeringsalgoritmer Kaitai Compress
- en modul för FUSE â Kaitai FS, vilket gör det möjligt att montera en fil som ett filsystem med hjĂ€lp av ksy-beskrivningen av dess format
SprÄk erkÀnd av GitHub och anvÀnds nu i mer Àn 400 gratis/open source-projekt för att parsa olika exotiska datatyper, allt frÄn reverse engineering av datafiler frÄn proprietÀra spel, till analys av kommunikationsprotokoll för satelliter.
Bland de viktigaste nyheterna i sprÄkversion 0.9 finns:
- stöd för nya mÄlsprÄk (Python via Construct-biblioteket, Nim, generering av dokumentation i HTML)
- fullstÀndig stöd för modern C++ (smart pointers, ingen manuell minneshantering, fixering av alla kÀnda minneslÀckor)
- stöd för adressering av inbÀddade typer genom syntax som foo::bar::baz
- stöd för validitet av lÀsta data enligt angivna villkor (valid)
- berÀkning av storlekar pÄ statiska datatyper i byte och bitar (operatorer sizeof och bitsizeof)
- formell beskrivning av sprÄket i form av JSON-schema, frÄn vilket nu dokumentation genereras
KĂ€lla: linux.org.ru

