wasm-bindgen 提供 WebAssembly(wasm) 模块和 JavaScript 之间的高级别交互,我们可以用它来访问微信小程序的API。
首先在Cargo.toml中引入依赖的库(js-sys是wasm-bindgen中的JS原始API绑定库):
[package]
然后添加Rust代码:
use
其中,extern "C" {} 中是导入的js函数,包括:
console
另外导出了两个Rust函数onLoad和run,可以通过模块访问。
在page_on_load中,使用Reflect来创建showModal的参数,如果方法中出现异常错误,会在console.error()中打印日志。
最后编译它:
::
pack.js是预处理脚本,对hello_bg.js和hello.js做了一些修改,使之可以在小程序中正常运行。
微信小程序目前仍然不支持Webassembly,需要调用wasm2js将wasm转换成js文件,wasm2js.exe是emsdk里的工具,参考这里安装:
https://emscripten.org/docs/getting_started/downloads.htmlemscripten.org下面看小程序的代码,在index中引入hello.js(run是启动函数可以不调用):
//index.js
运行结果:

再写一个导出md5函数的例子:
[dependencies]
#[wasm_bindgen]
调用它:
//index.js
输出:
MD5
完整代码:
https://github.com/planet0104/wx-wasm-bindgengithub.com