Nedavno je bila izdana naslednja različica Kaitai Struct 0.9 - opisni jezik in orodja za razčlenjevanje različnih binarnih formatov (na primer omrežnih paketov, slikovnih/avdio/video datotek, baz podatkov, arhivov, vsebnikov itd.). Kljub neresni različici številka 0.9 je to velika izdaja, ki vključuje razvoj v zadnjih 2.5 letih. V tem času je jezik prerasel v celo družino projektov:
- prevajalnik, ki vam omogoča pridobitev že pripravljene izvorne kode razčlenjevalnika v različnih programskih jezikih (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) iz zapisa specifikacijska datoteka (.ksy), kot tudi diagrami v formatu GraphViz in človeku berljive specifikacije formata v HTML;
- orodja za udoben razvoj specifikacij s hkratnim vizualnim nadzorom: Spletno IDE, vizualizator konzole, vtičnik za Visual Studio Code, Hobiti, Veles, vtičnik za Hiew, vtičnik za Binary Ninja;
- moduli za integracijo Kaitai Struct v proces sestavljanja za Maven, za Gradle, za Python, za JavaScript/WebPack
- knjižnica formatov, ki ima v tej izdaji že 156 opisov (in 78 več formatov so v postopku pregleda zahteve za vlečenje).
- knjižnica algoritmov za stiskanje vtičnikov Kaitai Compress
- modul za FUSE - Kaitai FS, ki vam omogoča pripenjanje datoteke kot datotečnega sistema z uporabo ksy opisa njenega formata
Jezik priznava GitHub in se zdaj uporablja v več kot 400 brezplačnih/odprtokodnih projektih za razčlenjevanje vseh vrst eksotičnih formatov podatkov, od lastniške podatkovne datoteke iger za obratno inženirstvocumming analiza satelitskih komunikacijskih protokolov.
Med glavnimi novostmi jezika 0.9 velja izpostaviti:
- podpora za nove ciljne jezike (Python prek knjižnice Construct, Nim, generiranje dokumentacije v HTML)
- popolna podpora za sodoben C++ (pametni kazalci, ni potrebe po ročnem upravljanju pomnilnika, popravlja vsa znana puščanja pomnilnika)
- podpora za naslavljanje ugnezdenih tipov prek sintakse, kot je foo::bar::baz
- podpora za validacijo prebranih podatkov glede na opisane pogoje (veljavno)
- izračun velikosti statičnih podatkovnih struktur v bajtih in bitih (operatorja sizeof in bitsizeof)
- formalni opis jezika v obliki sheme JSON, od katerega zdaj dokumentacija se ustvari
Vir: linux.org.ru