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工具

相關文章
相關標籤/搜索