#wasm-module #externref #anyref #命令行界面

app externref-cli

externref 提供的 CLI,用于处理 WASM 模块

1 个不稳定版本

0.2.0 2023 年 6 月 3 日

#762 in WebAssembly

MIT/Apache

120KB
2K SLoC

externref Crate 的 CLI

Build Status License: MIT OR Apache-2.0 rust 1.66+ required

此 crate 为 externref 提供命令行界面。它允许将使用 externref 模拟的 WASM 模块转换为使用真实的 externref 类型。

安装

使用以下命令安装

cargo install --locked externref-cli
# This will install `externref` executable, which can be checked
# as follows:
externref --help

默认情况下,通过 tracing crate 功能启用跟踪。您可以通过将 --no-default-features 参数添加到安装命令来手动禁用功能。跟踪主要在 DEBUGINFO 级别上使用 externref::* 目标执行,并将跟踪事件输出到 stderr,使用 标准订阅者;可以使用 RUST_LOG 环境变量配置其过滤(例如,RUST_LOG=externref=debug)。

或者,您可以使用以下方式安装和使用 CLI 应用程序 Docker 镜像:如以下所述,或从 GitHub 发布版 下载适用于流行目标的预构建应用程序二进制文件(x86_64 用于 Linux / macOS / Windows 和 AArch64 用于 macOS)。

用法

可执行文件提供与 externref crate 中的 WASM processor 相同的功能。有关可用选项的详细说明,请参阅其文档和 externref --help 的输出。

警告

处理器应在 WASM 优化工具(如 binaryen 的 wasm-opt)之前运行。

使用 Docker 镜像

作为本地安装的低成本替代方案,您可以从 GitHub 容器注册表 安装并使用 CLI 应用程序。要在一个 Docker 容器中运行应用程序,请使用以下命令:

docker run -i --rm ghcr.io/slowli/externref:main - \
  < module.wasm \
  > processed-module.wasm

在这里,- 是 CLI 应用的参数,指示从 stdin 读取输入模块。要输出跟踪信息,请在容器中设置 RUST_LOG 环境变量,例如使用 docker run --env RUST_LOG=debug ...

示例

以下终端捕获展示了转换测试WASM模块的过程。捕获包括跟踪输出,通过设置RUST_LOG环境变量来开启。跟踪信息包括每个转换后的函数和一些其他可能对调试有用的信息。

Output with tracing

许可证

根据您的选择,可在Apache License, Version 2.0MIT许可证下使用。

除非您明确指出,否则根据Apache-2.0许可证定义,您有意提交给externref的贡献将按上述方式双许可,不附加任何额外的条款或条件。

依赖项

~6–16MB
~219K SLoC