Բոլորովին վերջերս թողարկվեց Kaitai Struct 0.9-ի հաջորդ տարբերակը՝ նկարագրության լեզու և գործիքներ տարբեր երկուական ձևաչափերի վերլուծության համար (օրինակ՝ ցանցային փաթեթներ, պատկեր/աուդիո/վիդեո ֆայլեր, տվյալների բազաներ, արխիվներ, բեռնարկղեր և այլն): Չնայած անլուրջ տեսք ունեցող 0.9 տարբերակին, սա հիմնական թողարկում է, որը ներառում է վերջին 2.5 տարիների զարգացումները: Այս ընթացքում լեզուն մեծացել է նախագծերի մի ամբողջ ընտանիքի.
- կոմպիլյատոր, որը թույլ է տալիս ծրագրավորման տարբեր լեզուներով (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) ստանալ պատրաստի վերլուծիչ աղբյուրի կոդը: հստակեցման ֆայլ (.ksy), ինչպես նաև գծապատկերներ GraphViz ձևաչափով և մարդու կողմից ընթեռնելի ձևաչափի բնութագրեր HTML-ում;
- գործիքներ միաժամանակյա տեսողական հսկողությամբ բնութագրերի հարմար մշակման համար. Վեբ IDE, կոնսոլի վիզուալիզատոր, plugin Visual Studio Code-ի համար, Հոբբի, Վելես, plugin Hiew-ի համար, plugin Երկուական Ninja-ի համար;
- մոդուլներ՝ Kaitai Struct-ի հավաքման գործընթացում ինտեգրելու համար Մավենի համար, Գրեդլի համար, Python-ի համար, JavaScript/WebPack-ի համար
- ձևաչափի գրադարան, որն արդեն ունի 156 նկարագրություն այս թողարկումում (և Եվս 78 ձևաչափ գտնվում են ձգողական պահանջի վերանայման գործընթացում):
- plug-in սեղմման ալգորիթմների գրադարան Kaitai կոմպրես
- մոդուլ FUSE-ի համար - Kaitai FS, որը թույլ է տալիս ֆայլը տեղադրել որպես ֆայլային համակարգ՝ օգտագործելով դրա ձևաչափի ksy նկարագրությունը
Լեզու ճանաչված GitHub-ի կողմից և այժմ օգտագործվում է ավելի քան 400 անվճար/բաց կոդով նախագծերում՝ բոլոր տեսակի էկզոտիկ տվյալների ձևաչափերի վերլուծության համար՝ սկսած հակադարձ ինժեներական գույքային խաղի տվյալների ֆայլերcumming արբանյակային կապի արձանագրությունների վերլուծություն.
0.9 լեզվի հիմնական նորամուծությունների շարքում արժե առանձնացնել.
- աջակցություն նոր թիրախային լեզուներին (Python Construct գրադարանի միջոցով, Nim, HTML-ում փաստաթղթերի ստեղծում)
- լիարժեք աջակցություն ժամանակակից C++-ին (խելացի ցուցիչներ, հիշողությունը ձեռքով կառավարելու կարիք չկա, շտկում է բոլոր հայտնի հիշողության արտահոսքերը)
- աջակցություն՝ շարահյուսական շարահյուսության միջոցով հասցեագրելու համար տեղադրված տիպերը, ինչպիսիք են foo::bar::baz
- ընթերցված տվյալների վավերացման աջակցություն՝ ըստ նկարագրված պայմանների (վավեր)
- ստատիկ տվյալների կառուցվածքների չափերի հաշվարկ բայթերով և բիթերով (sizeof և bitsizeof օպերատորներ)
- լեզվի պաշտոնական նկարագրությունը ձևով JSON սխեմաներ, որից այժմ ստեղծվում է փաստաթղթեր
Source: linux.org.ru