94个版本
0.2.93 | 2024年8月12日 |
---|---|
0.2.92 | 2024年3月4日 |
0.2.91 | 2024年2月6日 |
0.2.89 | 2023年11月27日 |
0.1.0 | 2018年3月6日 |
#19 in WebAssembly
5,420,333 每月下载量
用于 34,595 个包 (2,022 个直接使用)
180KB
3.5K SLoC
安装 wasm-bindgen-cli
您可以使用 cargo install
来安装它
cargo install wasm-bindgen-cli
或者,您可以从中下载它 发行页面。
如果您已安装 cargo-binstall
,则可以通过运行以下命令安装预构建的工件:
cargo binstall wasm-bindgen-cli
示例
将JavaScript事物导入Rust并从Rust导出JavaScript事物。
use wasm_bindgen::prelude::*;
// Import the `window.alert` function from the Web.
#[wasm_bindgen]
extern "C" {
fn alert(s: &str);
}
// Export a `greet` function from Rust to JavaScript, that alerts a
// hello message.
#[wasm_bindgen]
pub fn greet(name: &str) {
alert(&format!("Hello, {}!", name));
}
使用ECMAScript模块从JavaScript使用导出的Rust事物!
import { greet } from "./hello_world";
greet("World!");
功能
-
轻量级。 只为实际使用付费。
wasm-bindgen
仅生成您实际使用的JavaScript导入和您导出的Rust功能的绑定和胶水。例如,导入和使用document.querySelector
方法不会导致Node.prototype.appendChild
或window.alert
包含在绑定中。 -
ECMAScript模块。 以与导入JavaScript模块相同的方式导入WebAssembly模块。与 WebAssembly模块和ECMAScript模块集成 兼容。
-
考虑到"Web IDL绑定"提议 进行设计。 最终,Rust生成的wasm函数和本地DOM方法之间将不再有任何JavaScript垫片。因为wasm函数是静态类型检查的,所以其中一些本地方法的动态类型检查应该变得不再必要,这有望解锁比JavaScript DOM访问更快的方法。
指南
您可以在这里找到关于使用 Rust 和 WebAssembly 的一般文档。
API 文档
MSRV 政策
在 crates.io 上发布的库具有 MSRV v1.57。MSRV 的更改将伴随着小版本号的增加。
CLI 工具及其相应的支持库具有 MSRV v1.76。MSRV 的更改将伴随着补丁版本号的增加。
许可证
本项目可在以下任一许可证下使用:
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任由您选择。
贡献
有关在 wasm-bindgen
上进行黑客攻击的信息,请参阅指南中的“贡献”部分!
除非您明确声明,否则任何根据 Apache-2.0 许可证定义的、有意提交以包含在本项目中的贡献,将根据上述条款双授权,而不附加任何额外的条款或条件。
依赖项
~0.6–1.4MB
~29K SLoC