Unified WebAssembly binary toolkit for MoonBit, runnable via moonx
# 已发布版本,无需安装
moonx Nanaloveyuki/wasm-tools validate app.wasm
# 或安装到 ~/.moon/bin/wasm-tools(wsm 是使用名/别名)
moon install Nanaloveyuki/wasm-tools
alias wsm=wasm-tools
wsm validate app.wasm| 命令 | 作用 |
|---|---|
| validate [FILE] | 自动识别 core module / component,解析并验证 |
| print [FILE] | 二进制转 WAT;component 按文档分段输出 |
| parse [FILE] | WAT / component WAT 转二进制 |
| dump [FILE] | section 表;--instructions 追加逐指令 offset,--json 输出结构化结果 |
| strip [FILE] | 删除 custom section;--keep NAME 保留指定段 |
| metadata [FILE] | 展示 name 与 producers custom section |
| size [FILE] | section、函数体大小与调用图;--top N、--json |
| component wit [FILE] | 从 component 提取内嵌 WIT 包 |
wsm parse app.wat -o app.wasm
wsm validate app.wasm
wsm print app.wasm -o app.wat
wsm dump --instructions app.wasm | head
wsm strip app.wasm --keep producers -o app.stripped.wasm
wsm metadata --json app.wasm
cat app.wasm | wsm validate -| 版本 | 内容 |
|---|---|
| 0.1.0 | validate / print / parse / dump / strip / metadata / component wit |
| 0.2.0(当前) | component 感知的 dump/metadata;size v1(section、函数、调用图) |
| 0.3.0 | opt(包装 moon-wasm-opt);size --diff/--budget |
| 0.4.0 | compose(WAC);addr2line(依赖 spike 通过) |
moon build --target wasm # 生成 _build/wasm/debug/build/wasm-tools.wasm
moon build --target native # 本地可执行文件
moon test # 单元测试(raw 层)
./tests/smoke.sh # CLI 行为检查,读取 tests/cli.md 的场景main.mbt argv 转发与退出码
cli/ 参数、IO、帮助、错误(不依赖 wasm 包)
cmd/ 每个子命令一个文件
wasm/ 唯一的适配层:raw 扫描、core、component、dump
tests/ fixtures、cli.md 场景、smoke.sh
docs/adr/ 范围、依赖与发布决策Install
Download zipUnified WebAssembly binary toolkit for MoonBit, runnable via moonx