Kaitai Struct 0.9 â gjuha e pĂ«rshkrimit dhe mjetet pĂ«r analizimin e formateve tĂ« ndryshme binarĂ« (pĂ«r shembull, pakot rrjet, skedarĂ«t me imazhe/audio/video, bazat e tĂ« dhĂ«nave, arkivat, kontejnerĂ«t, etj.). PavarĂ«sisht se numri i versionit 0.9 duket i paqartĂ«, ky Ă«shtĂ« njĂ« lĂ«shim i madh, qĂ« pĂ«rfshin zhvillime gjatĂ« dy viteve tĂ« fundit. GjatĂ« kĂ«saj periudhe, gjuha Ă«shtĂ« zgjeruar nĂ« njĂ« familje tĂ« tĂ«rĂ« projektesh:
- një kompilator, që lejon që nga skedari i specifikimit të formatit (.ksy) të krijohet një kod burimi analist në shumë gjuhë programimi (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), si dhe diagrame në formatin GraphViz dhe specifikime formatesh të lexueshme nga njeriu në HTML;
- mjete për zhvillimin e lehtë të specifikimeve me kontroll vizual në kohë reale: Web IDE, vizualizuesi i konsolës, plugin për Visual Studio Code, Hobbits, Veles, plugin për Hiew, plugin për Binary Ninja;
- modulat për integrimin e Kaitai Struct në procesin e ndërtimit për Maven, për Gradle, për Python, për JavaScript/WebPack
- biblioteka e formateve, e cila në këtë lëshim përfshin tashmë 156 përshkrime (dhe të tjera 78 formate janë në proces të rishikimit të kërkesave të tërheqjes).
- biblioteka e algoritmeve të kompresimit Kaitai Compress
- moduli pĂ«r FUSE â Kaitai FS, qĂ« lejon montimin e skedarit si njĂ« sistem skedarĂ«sh duke pĂ«rdorur pĂ«rshkrimin e formatit ksy
Gjuha pranohet nga GitHub dhe tani përdoret në më shumë se 400 projekte falas/opë të hapura për analizimin e formateve të ndryshme ekzotike të të dhënave, duke filluar nga rikthimi prapa i skedarëve të dhënash nga lojrat pronësore, e deri tek analizimi i protokolleve të komunikimit satelitor.
Nga risitë kryesore të gjuhës 0.9 vlen të përmendim:
- mbështetje për gjuhë të reja të targetuara (Python përmes bibliotekës Construct, Nim, gjenerimi i dokumentacionit në HTML)
- mbështetje e plotë për C++ të përparuar (pointera inteligjentë, pa nevojën për të menaxhuar manualisht memorjen, rregullimin e të gjitha varianti të njohura të rrjedhjeve të memorjes)
- mbështetje për adresimin e tipave të ngulitur përmes sintaksës në stilin foo::bar::baz
- mbështetje për validimin e të dhënave të lexuara sipas kushteve të përshkruara (valid)
- llogaritja e madhësive të strukturave statike të të dhënave në byte dhe bit (operatorët sizeof dhe bitsizeof)
- përshkrimi formal i gjuhës në formën e JSON-schema, nga e cila tani gjenerohet dokumentacioni
Burimi: linux.org.ru

