简介

本书是关于 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 操作控制台日志性能监控
  • 将 Rust 功能导出到 JS,例如类、函数等。
  • 使用丰富的类型,如字符串、数字、类、闭包和对象,而不是简单的 u32 和浮点数。
  • 自动为 JS 使用的 Rust 代码生成 TypeScript 绑定。

通过添加 wasm-pack,您可以从本地在 Web 上运行 Rust,将其作为更大应用程序的一部分发布,甚至可以在 NPM 上发布 Rust 编译到 WebAssembly 的代码!