要在 Rust 中为 WebAssembly (WASM) 实现自动化构建,您可以使用 wasm-pack
工具。wasm-pack
是一个用于构建和发布 Rust 生成的 WASM 文件的命令行工具。以下是设置和使用 wasm-pack
的步骤:
安装 wasm-pack
:
在 macOS 上,可以使用 Homebrew 安装:
brew install wasm-pack
在 Windows 上,可以从 wasm-pack 的 GitHub 发布页面 下载安装程序。
在 Linux 上,可以使用 curl
或 wget
从 wasm-pack 的 GitHub 发布页面 下载安装程序,然后运行安装命令。例如,在 Debian 或 Ubuntu 系统上:
curl -fsSL https://github.com/rustwasm/wasm-pack/releases/download/0.3.16/wasm-pack_0.3.16_amd64.deb -o wasm-pack_0.3.16_amd64.deb
sudo dpkg -i wasm-pack_0.3.16_amd64.deb
创建一个新的 Rust 项目(如果您还没有一个):
使用 Cargo 创建一个新的 Rust 二进制项目:
cargo new --lib my-wasm-project
cd my-wasm-project
在 Cargo.toml
文件中,添加 wasm-bindgen
和 wasm-pack
作为依赖项:
[package]
name = "my-wasm-project"
version = "0.1.0"
authors = ["Your Name <your.email@example.com>"]
description = "A simple example of a Rust library for WebAssembly"
[lib]
crate-type = ["cdylib"]
[dependencies]
wasm-bindgen = "0.2"
构建 WASM 文件:
在项目目录中,运行以下命令以使用 wasm-pack
构建您的 WASM 项目:
wasm-pack build --target web
这将在 pkg/
目录下生成两个文件:一个是编译后的 WASM 文件(my-wasm-project.wasm
),另一个是包含 WebAssembly 二进制文件和 JavaScript 绑定的 JS 文件(pkg/my-wasm-project_bg.wasm
和 pkg/my-wasm-project.js
)。
在 Web 项目中使用生成的 WASM 文件:
将生成的 pkg/
目录中的文件复制到您的 Web 项目中。然后,在 HTML 文件中,您可以通过以下方式引用 JS 文件:
<script type="module">
import init, { my_function } from './pkg/my-wasm-project.js';
async function run() {
await init();
my_function();
}
run();
</script>
确保在支持 WebAssembly 的现代浏览器中打开 HTML 文件。
通过以上步骤,您可以使用 wasm-pack
自动化构建 Rust 项目的 WASM 版本,并将其集成到 Web 项目中。