CΠΎΠ²ΡΠ΅ΠΌ Π½Π΅Π΄Π°Π²Π½ΠΎ Π²ΡΡΠ»Π° ΠΎΡΠ΅ΡΠ΅Π΄Π½Π°Ρ Π²Π΅ΡΡΠΈΡ Kaitai Struct 0.9 β ΡΠ·ΡΠΊΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ/Π°ΡΠ΄ΠΈΠΎ/Π²ΠΈΠ΄Π΅ΠΎ, Π±Π°Π· Π΄Π°Π½Π½ΡΡ , Π°ΡΡ ΠΈΠ²ΠΎΠ², ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈ Ρ. Π΄.). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π΅ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΡΡΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ 0.9 β ΡΡΠΎ ΠΊΡΡΠΏΠ½ΡΠΉ ΡΠ΅Π»ΠΈΠ·, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 2.5 Π³ΠΎΠ΄Π°. ΠΠ° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ·ΡΠΊ Π²ΡΡΠΎΡ Π΄ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²:
- ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠ° (.ksy) ΠΏΠΎΠ»ΡΡΠΈΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ ΠΏΠ°ΡΡΠ΅ΡΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby), Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ GraphViz ΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎ-ΡΠΈΡΠ°Π΅ΠΌΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠΎΠ² Π² HTML;
- ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ: Web IDE, ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Visual Studio Code, Hobbits, Veles, ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Hiew, ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Binary Ninja;
- ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Kaitai Struct Π² ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π»Ρ Maven, Π΄Π»Ρ Gradle, Π΄Π»Ρ Python, Π΄Π»Ρ JavaScript/WebPack
- Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠΎΠ², Π½Π°ΡΡΠΈΡΡΠ²Π°ΡΡΠ°Ρ Π² ΡΡΠΎΠΌ ΡΠ΅Π»ΠΈΠ·Π΅ ΡΠΆΠ΅ 156 ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ (ΠΈ Π΅ΡΠ΅ 78 ΡΠΎΡΠΌΠ°ΡΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ pull request review).
- Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΈ Kaitai Compress
- ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ FUSE — Kaitai FS, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π·Π°ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ», ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ksy-ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΅Π³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°
Π―Π·ΡΠΊ ΠΏΡΠΈΠ·Π½Π°Π½ GitHub ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΉΡΠ°Ρ Π² Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ 400 free / open source ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π΄Π»Ρ ΠΏΠ°ΡΡΠΈΠ½Π³Π° Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΡΠ΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π° ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ ΠΈΠ³Ρ, ΠΊΠΎΠ½ΡΠ°Ρ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΡΠ²ΡΠ·ΠΈ ΡΠΏΡΡΠ½ΠΈΠΊΠΎΠ².
ΠΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ² ΡΠ·ΡΠΊΠ° 0.9 ΡΡΠΎΠΈΡ Π²ΡΠ΄Π΅Π»ΠΈΡΡ:
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠ΅Π»Π΅Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ² (Python ΡΠ΅ΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Construct, Nim, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² HTML)
- ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ C++ (smart pointers, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΡΠ½ΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΠΌΡΡΡΡ, ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ)
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΠΈΠ΄Π° foo::bar::baz
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ (valid)
- Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ Π² Π±Π°ΠΉΡΠ°Ρ ΠΈ Π±ΠΈΡΠ°Ρ (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ sizeof ΠΈ bitsizeof)
- ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Π² Π²ΠΈΠ΄Π΅ JSON-ΡΡ Π΅ΠΌΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅ΠΏΠ΅ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru