Üsna hiljuti ilmus Kaitai Struct 0.9 järgmine versioon - kirjelduskeel ja tööriistad erinevate binaarvormingute (näiteks võrgupaketid, pildi/heli/video failid, andmebaasid, arhiivid, konteinerid jne) parsimiseks. Hoolimata kergemeelse välimusega versiooninumbrist 0.9, on see suur väljalase, mis hõlmab viimase 2.5 aasta arenguid. Selle aja jooksul on keelest kasvanud terve projektide perekond:
- kompilaator, mis võimaldab hankida vormingust valmis parseri lähtekoodi erinevates programmeerimiskeeltes (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) spetsifikatsioonifail (.ksy), samuti diagrammid vormingus GraphViz ja inimloetavad vorminguspetsifikatsioonid HTML-is;
- tööriistad spetsifikatsioonide mugavaks väljatöötamiseks samaaegse visuaalse juhtimisega: Veebi IDE, konsooli visualiseerija, Visual Studio Code'i pistikprogramm, Hobid, Veles, Hiew pistikprogramm, Binary Ninja pistikprogramm;
- moodulid Kaitai Structi integreerimiseks montaažiprotsessi Maveni jaoks, Gradle jaoks, Pythoni jaoks, JavaScripti/WebPacki jaoks
- vormingu raamatukogu, millel on selles väljaandes juba 156 kirjeldust (ja Veel 78 vormingut on tõmbamistaotluse läbivaatamise protsessis).
- pistikprogrammide tihendusalgoritmide raamatukogu Kaitai Kompress
- moodul FUSE jaoks - Kaitai FS, mis võimaldab ühendada faili failisüsteemina, kasutades selle vormingu ksy kirjeldust
Keel tunnustab GitHub ja seda kasutatakse nüüd enam kui 400 tasuta / avatud lähtekoodiga projektis igasuguste eksootiliste andmevormingute sõelumiseks, alates pöördprojekteerimise patenteeritud mängu andmefailidkummine satelliitsideprotokollide analüüs.
Keele 0.9 peamiste uuenduste hulgas tasub esile tõsta:
- uute sihtkeelte tugi (Python Construct teegi kaudu, Nim, dokumentatsiooni genereerimine HTML-is)
- täielik tugi kaasaegsele C++-le (nutikad osutid, pole vaja mälu käsitsi hallata, parandab kõik teadaolevad mälulekked)
- pesastatud tüüpide adresseerimise tugi süntaksi kaudu, näiteks foo::bar::baz
- tugi loetud andmete valideerimiseks vastavalt kirjeldatud tingimustele (kehtiv)
- staatiliste andmestruktuuride suuruse arvutamine baitides ja bittides (operaatorite suurus ja biti suurus)
- keele formaalne kirjeldus vormis JSON-skeemid, millest nüüd dokumentatsioon genereeritakse
Allikas: linux.org.ru