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