Piuttostu pocu, a prossima versione di Kaitai Struct 0.9 hè stata liberata - una lingua di descrizzione è strumenti per analizà diversi formati binari (per esempiu, pacchetti di rete, schedarii d'imaghjini / audio / video, basa di dati, archivi, cuntenituri, etc.). Malgradu u numeru di versione frivola 0.9, questa hè una versione maiò chì include sviluppi annantu à l'ultimi 2.5 anni. Duranti stu tempu, a lingua hè diventata una famiglia sana di prughjetti:
- un compilatore chì permette di ottene un codice fonte parser prontu in una varietà di linguaggi di prugrammazione (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) da un furmatu. u schedariu di specificazione (.ksy), è ancu i schemi in u formatu GraphViz è e specificazioni di furmatu leghjite da l'omu in HTML;
- Strumenti per u sviluppu convenientu di specificazioni cù u cuntrollu visuale simultaneo: IDE Web, visualizatore di cunsola, plugin per Visual Studio Code, hobbits, Veles, plugin per Hiew, plugin per Binary Ninja;
- moduli per integrà Kaitai Struct in u prucessu di assemblea per Maven, per Gradle, per Python, per JavaScript / WebPack
- biblioteca di furmatu, chì hà digià 156 descrizzioni in questa liberazione (è 78 formati più sò in u prucessu di rivisione di pull request).
- biblioteca di algoritmi di cumpressione plug-in Cumpressa Kaitai
- modulu per FUSE - Kaitai FS, chì permette di muntà un schedariu cum'è un sistema di schedari, utilizendu a descrizzione ksy di u so furmatu
Lingua ricunnisciutu da GitHub è hè avà utilizatu in più di 400 prughjetti gratuiti / open source per analizà ogni tipu di formati di dati esotici, chì varienu da ingegneria inversa i schedarii di dati di ghjocu di pruprietàcumming analisi di i protokolli di cumunicazione satellitari.
Trà e innovazioni principali di a lingua 0.9 vale a pena di evidenziare:
- supportu per e novi lingue di destinazione (Python via a biblioteca Construct, Nim, generazione di documentazione in HTML)
- supportu cumpletu per u C++ mudernu (puntatori intelligenti, senza bisognu di gestisce manualmente a memoria, corregge tutte e perdite di memoria cunnisciute)
- supportu per affruntà i tipi nidificati via sintassi cum'è foo::bar::baz
- supportu per a validazione di dati di lettura secondu e cundizioni descritte (validu)
- calculà e dimensioni di strutture di dati statici in byte è bit (sizeof è bitsizeof operators)
- descrizzione formale di una lingua in a forma Schemi JSON, da quale avà a documentazione hè generata
Source: linux.org.ru