Pjuttost reċentement, ġiet rilaxxata l-verżjoni li jmiss ta 'Kaitai Struct 0.9 - lingwa ta' deskrizzjoni u għodod għall-parsing ta 'diversi formati binarji (pereżempju, pakketti tan-netwerk, fajls tal-immaġni/awdjo/vidjow, databases, arkivji, kontenituri, eċċ.). Minkejja n-numru tal-verżjoni 0.9 li tidher frivola, din hija rilaxx maġġuri li tinkludi żviluppi matul l-aħħar 2.5 snin. Matul dan iż-żmien, il-lingwa kibret f'familja sħiħa ta' proġetti:
- kompilatur li jippermettilek tikseb kodiċi sors parser lest f'varjetà ta' lingwi ta' programmar (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) minn format fajl tal-ispeċifikazzjoni (.ksy), kif ukoll dijagrammi fil-format GraphViz u speċifikazzjonijiet tal-format li jinqraw mill-bniedem f'HTML;
- għodod għall-iżvilupp konvenjenti ta 'speċifikazzjonijiet b'kontroll viżwali simultanju: Web IDE, console visualizer, plugin għal Visual Studio Code, hobbits, Veles, plugin għal Hiew, plugin għal Binary Ninja;
- moduli għall-integrazzjoni ta 'Kaitai Struct fil-proċess ta' assemblaġġ għal Maven, għal Gradle, għal Python, għal JavaScript/WebPack
- librerija tal-format, li diġà għandha 156 deskrizzjoni f'dan ir-rilaxx (u 78 format aktar jinsabu fil-proċess ta’ reviżjoni tal-pull request).
- librerija ta' algoritmi ta' kompressjoni plug-in Kaitai Kompress
- modulu għal FUSE - Kaitai FS, li jippermettilek timmonta fajl bħala sistema ta 'fajls, billi tuża d-deskrizzjoni ksy tal-format tagħha
Lingwa rikonoxxuti minn GitHub u issa huwa użat f'aktar minn 400 proġett b'xejn / sors miftuħ għall-parsing ta 'kull tip ta' formati ta 'dejta eżotiċi, li jvarjaw minn fajls tad-dejta tal-logħob proprjetarji ta' reverse engineeringcumming analiżi ta' protokolli ta' komunikazzjoni bis-satellita.
Fost l-innovazzjonijiet ewlenin tal-lingwa 0.9 ta’ min jenfasizza:
- appoġġ għal lingwi mmirati ġodda (Python permezz tal-librerija Construct, Nim, ġenerazzjoni ta 'dokumentazzjoni fl-HTML)
- appoġġ sħiħ għal C++ modern (pointers intelliġenti, l-ebda ħtieġa li timmaniġġja l-memorja manwalment, tiffissa t-tnixxija kollha magħrufa tal-memorja)
- appoġġ għall-indirizzar ta 'tipi nested permezz ta' sintassi bħal foo::bar::baz
- appoġġ għall-validazzjoni tad-dejta tal-qari skont il-kundizzjonijiet deskritti (validu)
- il-kalkolu tad-daqsijiet tal-istrutturi tad-dejta statiċi f'bytes u bits (sizeof u bitsizeof operaturi)
- deskrizzjoni formali ta’ lingwa fil-forma Skemi JSON, minn fejn issa tiġi ġġenerata dokumentazzjoni
Sors: linux.org.ru