WebAssembly入门课

在这个例子中,Rust 程序将输入数字简单地增长了三倍并返回结果。 首先将 WebAssembly 工具安装到 Rust 编译器。php

# Install Rust$ sudo apt-get update$ sudo apt-get -y upgrade$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh$ source $HOME/.cargo/env
# Install WebAssembly tools$ rustup target add wasm32-wasi
$ rustup override set nightly
$ rustup target add wasm32-wasi --toolchain nightly

接下来,建立一个新的 cargo 项目。shell

downloadWebAssembly入门课因为这个程序是从主机应用程序调用的,而不是做为独立的可执行文件运行,所以咱们将建立一个 lib 项目。app

$ cargo new --lib triple$ cd triple

编辑 Cargo.toml 文件以添加[lib]节。 它会告诉编译器在哪里能够找到库的源代码,以及如何生成字节码输出。curl

[lib]name = "triple_lib"path = "src/lib.rs"crate-type =["cdylib"]

下面是 Rust 程序 src/lib.rs 的内容. 实际上,你能够在这个库文件中定义多个外部函数,而且全部这些函数均可以经过 WebAssembly 在 JaveScript 主机上使用。ide

#[no_mangle]pub extern fn triple(x: i32) -> i32 {  return 3 * x;
}

接下来你能够用下面的命令行编译 Rust 的源代码到WebAssembly的字节码中。函数

$ cargo +nightly build --target wasm32-wasi --release

WebAssembly 字节码文件是 target/wasm32-wasi/release/triple_lib.wasm工具

相关文章
相关标签/搜索