简介
本书介绍了 `wasm-bindgen`,这是一个 Rust 库和 CLI 工具,它可以促进 wasm 模块和 JavaScript 之间的高级交互。`wasm-bindgen` 工具和 crate 只是 Rust 和 WebAssembly 生态系统 的一部分。如果您不熟悉 `wasm-bindgen`,建议您先阅读 生命游戏教程。如果您对 `wasm-pack` 感兴趣,可以在这里找到 文档。
`wasm-bindgen` 工具有点像 组件模型提案 的半填充,也包含一些功能,可以增强 JS 和 wasm 编译代码(目前主要是 Rust)之间的高级交互。更具体地说,这个项目允许 JS/wasm 使用字符串、JS 对象、类等进行通信,而不是仅仅使用整数和浮点数。例如,使用 `wasm-bindgen`,您可以在 Rust 中定义一个 JS 类,或者从 JS 中获取一个字符串,或者返回一个字符串。该功能还在不断发展!
目前,该工具以 Rust 为中心,但底层基础是与语言无关的,希望随着时间的推移,随着该工具的稳定,它可以用于 C/C++ 等语言!
该项目的显著特点包括
- 将 JS 功能导入 Rust,例如 DOM 操作、控制台日志记录 或 性能监控。
- 将 Rust 功能导出到 JS,例如类、函数等。
- 使用字符串、数字、类、闭包和对象等丰富类型,而不是仅仅使用 `u32` 和浮点数。
- 自动为 Rust 代码生成 TypeScript 绑定,以便 JS 使用。
随着 `wasm-pack` 的加入,您可以从在本地运行 Web 上的 Rust,到将其发布为大型应用程序的一部分,甚至将 Rust 编译为 WebAssembly 发布到 NPM,无所不能!