WebAssembly-Rustの操作

RUSTコンパイルコードを取得するには、WebAssembly.studioツールを使用します。

移動WebAssembly.studioに行く時に利用可能ですhttps://webassembly.studio/ 以下のような画面が表示されます−

Empty RustProjectをクリックします。完了すると、src /フォルダーに3つのファイルが作成されます-

main.rsファイルを開き、選択したコードを変更します。

私は2つの与えられた数を追加する次の関数を追加しています-

fn add_ints(lhs: i32, rhs: i32) -> i32 {
   lhs+rhs
}

main.rsで利用可能なコードは次のとおりです-

#[no_mangle]
pub extern "C" fn add_one(x: i32) -> i32 {
   x + 1
}

以下に示すように、fnadd_oneを自分のものに置き換えます-

#[no_mangle]
pub extern "C" fn add_ints(lhs: i32, rhs: i32) -> i32 {
   lhs+rhs
}

main.jsで、関数名をadd_oneからadd_intsに変更します

fetch('../out/main.wasm').then(
   response =>
   response.arrayBuffer()
).then(bytes => WebAssembly.instantiate(bytes)).then(results => {
   instance = results.instance;
   document.getElementById("container").textContent = instance.exports.add_one(41);
}).catch(console.error);

instance.exports.add_oneをinstance.exports.add_ints(100,100)に置き換えます

fetch('../out/main.wasm').then(
   response =>
   response.arrayBuffer()
).then(bytes => WebAssembly.instantiate(bytes)).then(results => {
   instance = results.instance;
   document.getElementById("container").textContent = instance.exports.add_ints(100,100)
}).catch(console.error);

webassembly.studio UIで利用可能なビルドボタンをクリックして、コードをビルドします。

ビルドが完了したら、UIで使用可能な[実行]ボタンをクリックして、出力を確認します-

instance.exports.add_ints(100,100)を渡したので、出力は200になります。

同様に、rust用に別のプログラムを作成し、webassembly.studioでコンパイルすることができます。