#wasm-module #wasm #utility-macro #compile-time #utility #macro

nightly include-wasm-rs

在编译时构建Rust WebAssembly模块并返回字节

4个版本

0.1.3 2024年2月28日
0.1.2 2024年2月22日
0.1.1 2024年2月16日
0.1.0 2023年12月13日

过程宏中排名第1876

Download history 1/week @ 2024-06-03 9/week @ 2024-06-10 8/week @ 2024-06-17

每月下载量215

MIT协议

22KB
422 代码行

包含Wasm-RS

crates.io docs.rs crates.io

在编译时构建Rust WebAssembly模块并返回字节。

示例

let module = build_wasm!("relative/path/to/module");

这个crate提供对cargo的包装,以在编译时构建并包含WebAssembly模块。这适用于单元测试,例如在使用MIRI或在网上执行编译后的模块时,目标平台可能无法调用cargo本身。

工具链

要使用此crate,您必须安装wasm32-unknown-unknownnightly工具链,并具有rust-src组件。您可以使用以下命令安装这些内容

rustup target add wasm32-unknown-unknown --toolchain nightly
rustup component add rust-src

参数

构建宏允许传递各种参数到构建命令

let module = build_wasm!{
    path: "relative/path/to/module",
    features: [
        atomics, // Controls if the `atomics` proposal is enabled
        bulk_memory, // Controls if the `bulk-memory` proposal is enabled
        mutable_globals, // Controls if the `mutable-globals` proposal is enabled
    ],
    // Allows additional environment variables to be set while compiling the module.
    env: Env {
        FOO: "bar",
        BAX: 7,
    },
    // Controls if the module should be built in debug or release mode.
    release: true
};

依赖项

~300–750KB
~18K SLoC