Yaqinda Kaitai Struct 0.9 ning navbatdagi versiyasi chiqdi - tavsif tili va turli ikkilik formatlarni (masalan, tarmoq paketlari, tasvir/audio/video fayllar, ma'lumotlar bazalari, arxivlar, konteynerlar va boshqalar) tahlil qilish vositalari. 0.9-sonli bema'ni ko'rinishga ega bo'lishiga qaramay, bu so'nggi 2.5 yildagi ishlanmalarni o'z ichiga olgan yirik nashr. Bu vaqt ichida til butun loyihalar oilasiga aylandi:
- formatdan turli xil dasturlash tillarida (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) tayyor tahlil qiluvchi manba kodini olish imkonini beruvchi kompilyator. spetsifikatsiya fayli (.ksy), shuningdek GraphViz formatidagi diagrammalar va HTML-dagi odam o'qiy oladigan format spetsifikatsiyalari;
- bir vaqtning o'zida vizual nazorat bilan texnik xususiyatlarni qulay ishlab chiqish uchun vositalar: Web IDE, konsol vizualizatori, Visual Studio kodi uchun plagin, Xobbitlar, Veles, Hiew uchun plagin, Binary Ninja uchun plagin;
- Kaitai Structni yig'ish jarayoniga integratsiyalash uchun modullar Maven uchun, Gradle uchun, Python uchun, JavaScript/WebPack uchun
- format kutubxonasi, bu nashrda allaqachon 156 ta tavsifga ega (va Yana 78 format olish so'rovini ko'rib chiqish jarayonida).
- plaginlarni siqish algoritmlari kutubxonasi Kaitai kompressi
- FUSE uchun modul - Kaitai FS, bu faylni uning formatining ksy tavsifidan foydalangan holda fayl tizimi sifatida o'rnatish imkonini beradi
til GitHub tomonidan tan olingan va hozirda 400 dan ortiq bepul / ochiq manba loyihalarida barcha turdagi ekzotik ma'lumotlar formatlarini tahlil qilish uchun ishlatiladi, teskari muhandislik xususiy o'yin ma'lumotlar fayllarikamming sun'iy yo'ldosh aloqa protokollarini tahlil qilish.
0.9 tilining asosiy yangiliklari orasida quyidagilarni ta'kidlash kerak:
- yangi maqsadli tillarni qo'llab-quvvatlash (Construct kutubxonasi orqali Python, Nim, HTMLda hujjatlarni yaratish)
- zamonaviy C++ ni to'liq qo'llab-quvvatlash (aqlli ko'rsatkichlar, xotirani qo'lda boshqarishning hojati yo'q, barcha ma'lum bo'lgan xotira oqishlarini tuzatadi)
- foo::bar::baz kabi sintaksis orqali ichki o'rnatilgan turlarga murojaat qilishni qo'llab-quvvatlash
- tavsiflangan shartlarga muvofiq o'qilgan ma'lumotlarni tekshirishni qo'llab-quvvatlash (haqiqiy)
- statik ma'lumotlar tuzilmalarining o'lchamlarini bayt va bitlarda hisoblash (sizeof va bitsizeof operatorlari)
- shakldagi tilning rasmiy tavsifi JSON sxemalari, hozir qaysidan hujjatlar shakllantiriladi
Manba: linux.org.ru