Жақында Kaitai Struct 0.9 келесі нұсқасы шығарылды - сипаттау тілі және әртүрлі екілік пішімдерді талдауға арналған құралдар (мысалы, желілік пакеттер, кескін/аудио/бейне файлдар, дерекқорлар, мұрағаттар, контейнерлер және т.б.). Нұсқаның 0.9 нөмірі жеңіл көрінетініне қарамастан, бұл соңғы 2.5 жылдағы әзірлемелерді қамтитын негізгі шығарылым. Осы уақыт ішінде тіл жобалардың тұтас отбасына айналды:
- пішімнен әр түрлі бағдарламалау тілдерінде (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) дайын талдаушы бастапқы кодты алуға мүмкіндік беретін компилятор. спецификация файлы (.ksy), сондай-ақ GraphViz форматындағы диаграммалар және HTML тіліндегі адам оқи алатын пішім спецификациялары;
- бір уақытта визуалды басқарумен спецификацияларды ыңғайлы әзірлеуге арналған құралдар: Web IDE, консоль визуализаторы, Visual Studio Code үшін плагин, Хоббиттер, Велес, Hiew үшін плагин, Binary Ninja үшін плагин;
- Kaitai Struct құрастыру процесіне біріктіруге арналған модульдер Мавен үшін, Gradle үшін, Python үшін, JavaScript/WebPack үшін
- формат кітапханасы, бұл шығарылымда 156 сипаттамасы бар (және Тағы 78 пішім сұрауды қарау процесінде).
- қосылатын модульдерді қысу алгоритмдерінің кітапханасы Қайтай компресс
- FUSE модулі - Kaitai FS, бұл файлды файлдық жүйе ретінде оның пішімінің ksy сипаттамасын пайдаланып орнатуға мүмкіндік береді
Тіл GitHub арқылы танылған және қазір 400-ден астам тегін/ашық бастапқы жобаларда экзотикалық деректер пішімдерінің барлық түрлерін талдау үшін қолданылады. кері инженерлік меншік ойын деректер файлдарыкамминг спутниктік байланыс хаттамаларын талдау.
0.9 тілінің негізгі инновацияларының ішінде мынаны атап өткен жөн:
- жаңа мақсатты тілдерді қолдау (Construct кітапханасы арқылы Python, Nim, HTML тілінде құжаттаманы құру)
- заманауи C++ үшін толық қолдау (ақылды көрсеткіштер, жадты қолмен басқарудың қажеті жоқ, барлық белгілі жадтың ағып кетуін түзетеді)
- foo::bar::baz сияқты синтаксис арқылы кірістірілген түрлерді шешуге қолдау көрсету
- сипатталған шарттарға сәйкес оқылған деректерді тексеруге қолдау көрсету (жарамды)
- байт пен биттегі статикалық деректер құрылымдарының өлшемдерін есептеу (sizeof және bitsizeof операторлары)
- формадағы тілдің формальды сипаттамасы JSON схемалары, қазір қайдан құжаттама жасалады
Ақпарат көзі: linux.org.ru