Heel onlangs is die volgende weergawe van Kaitai Struct 0.9 vrygestel - 'n beskrywingstaal en gereedskap vir die ontleding van verskeie binêre formate (byvoorbeeld netwerkpakkies, beeld-/klank-/videolêers, databasisse, argiewe, houers, ens.). Ten spyte van die ligsinnige weergawe nommer 0.9, is dit 'n groot weergawe wat ontwikkelings oor die afgelope 2.5 jaar insluit. Gedurende hierdie tyd het die taal gegroei tot 'n hele familie van projekte:
- 'n samesteller waarmee u 'n klaargemaakte ontleder-bronkode in 'n verskeidenheid programmeertale (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) vanaf 'n formaat kan verkry spesifikasielêer (.ksy), sowel as diagramme in die formaat GraphViz en mens-leesbare formaatspesifikasies in HTML;
- gereedskap vir gerieflike ontwikkeling van spesifikasies met gelyktydige visuele beheer: Web IDE, konsole visualiseerder, plugin vir Visual Studio Code, hobbits, Veles, plugin vir Hiew, plugin vir Binary Ninja;
- modules vir die integrasie van Kaitai Struct in die monteerproses vir Maven, vir Gradle, vir Python, vir JavaScript/WebPack
- formaat biblioteek, wat reeds 156 beskrywings in hierdie vrystelling het (en 78 meer formate is in die proses van hersiening van trekversoeke).
- biblioteek van inprop-kompressie-algoritmes Kaitai kompres
- module vir FUSE - Kaitai FS, wat jou toelaat om 'n lêer as 'n lêerstelsel te monteer, deur die ksy-beskrywing van sy formaat te gebruik
Taal erken deur GitHub en word nou in meer as 400 gratis / oopbronprojekte gebruik vir die ontleding van alle soorte eksotiese dataformate, wat wissel van omgekeerde ingenieurswese eie speldatalêerscumming ontleding van satellietkommunikasieprotokolle.
Onder die belangrikste innovasies van taal 0.9 is dit die moeite werd om uit te lig:
- ondersteuning vir nuwe teikentale (Python via die Construct-biblioteek, Nim, generering van dokumentasie in HTML)
- volle ondersteuning vir moderne C++ (slim wysers, hoef nie geheue handmatig te bestuur nie, maak alle bekende geheuelekkasies reg)
- ondersteuning vir die aanspreek van geneste tipes via sintaksis soos foo::bar::baz
- ondersteuning vir die validering van leesdata volgens die beskryfde voorwaardes (geldig)
- berekening van die groottes van statiese datastrukture in grepe en bisse (grootte van en bitgrootte van operateurs)
- formele beskrywing van 'n taal in die vorm JSON-skemas, waaruit nou dokumentasie word gegenereer
Bron: linux.org.ru