Жакында 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 үчүн плагин, Хоббиттер, Veles, Hie үчүн плагин, Binary Ninja үчүн плагин;
- Kaitai түзүмүн монтаждоо процессине интеграциялоо үчүн модулдар Maven үчүн, Gradle үчүн, Python үчүн, JavaScript/WebPack үчүн
- формат китепканасы, бул чыгарылышта буга чейин 156 сүрөттөмөсү бар (жана дагы 78 формат тартуу өтүнүчүн карап чыгуу процессинде).
- плагинди кысуу алгоритмдеринин китепканасы Kaitai Компресс
- FUSE модулу - Kaitai FS, бул файлды файлдык система катары орнотууга мүмкүндүк берет, анын форматынын ksy сүрөттөмөсү
тил GitHub тарабынан таанылган жана азыр 400дөн ашык акысыз / ачык булак долбоорлорунда экзотикалык маалымат форматтарынын бардык түрлөрүн талдоо үчүн колдонулат, тескери инженердик менчик оюн маалымат файлдарыкамминг спутниктик байланыш протоколдорун талдоо.
0.9 тилинин негизги инновацияларынын арасында төмөнкүлөрдү белгилей кетүү керек:
- жаңы максаттуу тилдерди колдоо (Python Construct китепканасы аркылуу, Nim, HTMLде документтерди түзүү)
- заманбап C++ үчүн толук колдоо (акылдуу көрсөткүчтөр, эстутумду кол менен башкаруунун кереги жок, бардык белгилүү эс тутумдун агып кетишин оңдойт)
- foo::bar::baz сыяктуу синтаксис аркылуу уяланган типтерге кайрылууну колдоо
- сүрөттөлгөн шарттарга ылайык окуу маалыматтарды текшерүү үчүн колдоо (жарамдуу)
- байттарда жана биттерде статикалык маалымат структураларынын өлчөмдөрүн эсептөө (sizeof жана bitsizeof операторлору)
- формадагы тилдин формалдуу сүрөттөлүшү JSON схемалары, азыр андан документтер түзүлөт
Source: linux.org.ru