我希望将一个Rust程序/项目编译为Wasm,以便使用python-ext-wasm在我的Python应用程序中使用。现有的教程假设它是针对web的,并建议使用wasm-pack。没有JavaScript绑定的情况下,是否有另一种方法只编译Rust到Wasm?
例如,如果我有一个锈蚀程序(myproject/math.rs)。
#[no_mangle]
pub extern fn sum(x: i32, y: i32) -> i32 {
x + y
}wasm的情况下将其转换为webpack文件发布于 2020-04-01 21:56:32
您可以直接用WebAssembly编译cargo build --target wasm32-unknown-unknown。这基本上就是其他工具(如wasm-pack和wasm-bindgen )所构建的,如果您不想这样做(例如,如果您没有针对JavaScript),您可以直接使用它编译成WebAssembly。
不过,也有一些警告:
extern函数进行。这意味着可以使用的类型数量有限,主要是原始类型(整数、浮点数、布尔值和指针)。除非您在顶部使用额外的抽象层(这就是wasm-bindgen所做的),否则您将无法传递复杂的类型。wasm32-unknown-unknown目标的支持。如果您的WebAssembly主机支持WASI (WebAssembly系统接口),您可以使用wasm32-wasi目标来编译一个具有WASI支持的模块,该模块支持更多的标准库。https://stackoverflow.com/questions/60980310
复制相似问题