Melko hiljattain julkaistiin Kaitai Struct 0.9:n seuraava versio - kuvauskieli ja työkalut erilaisten binäärimuotojen jäsentämiseen (esim. verkkopaketit, kuva/ääni/videotiedostot, tietokannat, arkistot, kontit jne.). Huolimatta kevyen näköisestä versionumerosta 0.9, tämä on merkittävä julkaisu, joka sisältää kehitystä viimeisen 2.5 vuoden ajalta. Tänä aikana kieli on kasvanut kokonaiseksi projektiperheeksi:
- kääntäjä, jonka avulla voit hankkia valmiin jäsentimen lähdekoodin useilla ohjelmointikielillä (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) formaatista määritystiedosto (.ksy) sekä kaaviot GraphViz-muodossa ja ihmisen luettavissa olevat HTML-muodon määritykset;
- työkalut spesifikaatioiden kätevään kehittämiseen samanaikaisesti visuaalisella ohjauksella: Web IDE, konsolin visualisoija, Visual Studio Code -laajennus, Hobbits, Veles, Hiew-laajennus, Binary Ninja -laajennus;
- moduulit Kaitai Structin integroimiseksi kokoonpanoprosessiin Mavenille, joukkueelle Gradle, Pythonille, JavaScriptille/WebPackille
- muotoinen kirjasto, jolla on jo 156 kuvausta tässä julkaisussa (ja 78 muuta muotoa ovat vetopyynnön tarkistusprosessissa).
- laajennusten pakkausalgoritmien kirjasto Kaitai Compress
- moduuli FUSE - Kaitai FS, jonka avulla voit liittää tiedoston tiedostojärjestelmänä käyttämällä sen muodon ksy-kuvausta
Kieli GitHubin tunnistama ja sitä käytetään nyt yli 400 ilmaisessa / avoimen lähdekoodin projektissa kaikenlaisten eksoottisten tietomuotojen jäsentämiseen, alkaen käänteisen suunnittelun omat pelidatatiedostotcumming satelliittiviestintäprotokollien analyysi.
Kielen 0.9 tärkeimmistä innovaatioista on syytä korostaa:
- tuki uusille kohdekielille (Python Construct-kirjaston kautta, Nim, HTML-dokumentaation luominen)
- täysi tuki nykyaikaiselle C++:lle (älykkäät osoittimet, ei tarvitse hallita muistia manuaalisesti, korjaa kaikki tunnetut muistivuodot)
- tuki sisäkkäisten tyyppien osoittamiseen syntaksin avulla, kuten foo::bar::baz
- tuki luettujen tietojen validoimiseen kuvattujen ehtojen mukaisesti (pätevä)
- staattisten tietorakenteiden koon laskeminen tavuina ja bitteinä (operaattoreiden koko ja bittikoko)
- muodollinen kuvaus kielestä muodossa JSON-skeemat, josta nyt dokumentaatio syntyy
Lähde: linux.org.ru