每个 WebAssembly 模块都有一个边界:它从宿主环境导入的东西,以及它导出供宿主调用的东西。有趣的问题都藏在这个边界里——这个模块运行到底需要什么,又暴露了什么?WASM 导入/导出可视化工具在浏览器中清晰地呈现这一边界。
拖入一个 .wasm 文件,工具会用与我们其他 WebAssembly 工具相同的、精确到字节的解析器解析其导入和导出段,然后:
- 按命名空间(
env、wasi_snapshot_preview1、某个 JS 胶水代码命名空间等)对导入进行分组,并从模块的类型段中解析出每个导入函数的真实参数/返回值签名。 - 按类型(函数、内存、表、全局变量)对导出进行分组,以同样方式解析导出函数的签名,并正确考虑到导入函数占据最低的函数索引。
- 将两者并排展示——导入在左,导出在右——让你一眼看清整个宿主/模块契约。
当导入的命名空间和字段名给出真实、可核实的线索时,工具会添加一条基于证据的、谨慎的注释——例如识别出 wasi_snapshot_preview1 很可能是面向 WASI 的构建,或将一组 emscripten_*/__cxa_* 导入识别为很可能是 Emscripten 的 C/C++ 运行时胶水代码。这些注释始终展示产生它们的真实匹配导入名称,并以"很可能"来表述,绝不断言确定——本工具读取的是真实的二进制数据,不会对看不到的内容进行猜测。
可以用它在运行第三方 .wasm 文件之前了解其真实依赖,比较两个构建版本与宿主的接触面,发现异常庞大的导入面,或者单纯学习 WebAssembly 模块如何与其环境通信。
Tiny Online Tools






