如何检查wasm二进制文件的WebAssembly版本

vos*_*d01 1 versioning module webassembly

给定一个.wasm文件,如何检查二进制编码的版本


我一直在尝试使用WebAssembly,但是开始遇到据我所理解的版本控制问题,导致出现如下消息:

错误:Wasm.instantiateModule():Wasm解码失败结果=预期版本0c 00 00 00,找到0b 00 00 00 @ + 4

要么

错误:Wasm.instantiateModule():Wasm解码失败结果=预期版本0c 00 00 00,发现01 00 00 00 @ + 4

除了在不支持给定文件的WebAssembly嵌入程序上运行该错误以外,如何检查wasm文件的版本?


编辑:根据最近的发行说明,这是一个有时间限制的问题,所有组件的版本都将是0x1

kan*_*aka 6

如果您有hexdump实用程序,则可以查看文件的4-7个字节。例如,使用Linux hexdump实用程序:

$ hexdump -C -n8 examples_c/hello_sdl.wasm | head
00000000  00 61 73 6d 01 00 00 00                           |.asm....|
00000008
Run Code Online (Sandbox Code Playgroud)

前四个字节是wasm幻数(0x0061736d或'\ 00asm')。接下来的4个字节是版本(小端)。因此,在上面的示例中,版本为0x01,即MVP(最小可行产品)。

在某些时候,我确定标准linux file命令将识别WebAssembly文件并打印版本。

完整格式在WebAssembly二进制编码页面中描述。