【发布时间】:2019-11-03 05:46:39
【问题描述】:
我想通过 JavaScript 传递一个文件,并在 Rust WebAssembly 中以 u8 数组的形式访问它。我通过分配内存和传递指针在 Emscripten c++ 缓冲区中完成了此操作,但我无法在 RUST 和 wasm-bindgen 中理解它。
【问题讨论】:
标签: javascript rust webassembly
我想通过 JavaScript 传递一个文件,并在 Rust WebAssembly 中以 u8 数组的形式访问它。我通过分配内存和传递指针在 Emscripten c++ 缓冲区中完成了此操作,但我无法在 RUST 和 wasm-bindgen 中理解它。
【问题讨论】:
标签: javascript rust webassembly
如果您使用 arg data: &[u8] 公开函数
#[wasm_bindgen]
#[allow(non_snake_case)]
#[no_mangle]
pub fn processFile(fileData: &[u8])
你可以从 JavaScript 传递一个字节数组给它
let fileData = new Uint8Array(23);
// populate data ...
mod.processFile(fileData)
也许只是我正在使用的版本
λ wasm-pack -V
wasm-pack 0.8.1
数组长度可能是个问题,(我的代码有固定长度的数据)我会在函数中传递 len 并验证它,因为我不确定 rustc 如何验证它。
【讨论】: