diff --git a/deno_run_wasm/run_wasm.ts b/deno_run_wasm/run_wasm.ts new file mode 100644 index 0000000..60f40a4 --- /dev/null +++ b/deno_run_wasm/run_wasm.ts @@ -0,0 +1,12 @@ +const wasmCode = await Deno.readFile("./target/wasm32-unknown-unknown/debug/wasm_deno_example.wasm"); +const wasmModule = new WebAssembly.Module(wasmCode); +const wasmInstance = new WebAssembly.Instance(wasmModule); +const { + square, +} = wasmInstance.exports; + +console.log(square(1)); +console.log(square(2)); +console.log(square(3)); +console.log(square(4)); + diff --git a/deno_run_wasm/warsam_sample/src/main.rs b/deno_run_wasm/warsam_sample/src/main.rs deleted file mode 100644 index e7a11a9..0000000 --- a/deno_run_wasm/warsam_sample/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("Hello, world!"); -} diff --git a/deno_run_wasm/wasm_sample/Cargo.lock b/deno_run_wasm/wasm_sample/Cargo.lock new file mode 100644 index 0000000..a63689e --- /dev/null +++ b/deno_run_wasm/wasm_sample/Cargo.lock @@ -0,0 +1,5 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "warsam_sample" +version = "0.1.0" diff --git a/deno_run_wasm/warsam_sample/Cargo.toml b/deno_run_wasm/wasm_sample/Cargo.toml similarity index 80% rename from deno_run_wasm/warsam_sample/Cargo.toml rename to deno_run_wasm/wasm_sample/Cargo.toml index 1305965..a6667ce 100644 --- a/deno_run_wasm/warsam_sample/Cargo.toml +++ b/deno_run_wasm/wasm_sample/Cargo.toml @@ -1,9 +1,12 @@ [package] -name = "warsam_sample" +name = "wasm_sample" version = "0.1.0" authors = ["Hatter Jiang "] edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lib] +crate-type =["cdylib"] + [dependencies] diff --git a/deno_run_wasm/wasm_sample/build.sh b/deno_run_wasm/wasm_sample/build.sh new file mode 100644 index 0000000..b878198 --- /dev/null +++ b/deno_run_wasm/wasm_sample/build.sh @@ -0,0 +1 @@ +cargo build --target wasm32-unknown-unknown diff --git a/deno_run_wasm/wasm_sample/src/lib.rs b/deno_run_wasm/wasm_sample/src/lib.rs new file mode 100644 index 0000000..59f3df2 --- /dev/null +++ b/deno_run_wasm/wasm_sample/src/lib.rs @@ -0,0 +1,4 @@ +#[no_mangle] +pub extern "C" fn square(x: u32) -> u32 { + x * x +}