From 0106a129c9e78e5462bc1c4c65eb5bf65c6d3cc0 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 10 Jan 2024 17:04:10 +0100 Subject: [PATCH] add minimal zig wasm testing ground --- packages/zig/README.md | 10 ++++++++++ packages/zig/add.wasm | Bin 0 -> 6436 bytes packages/zig/add.zig | 3 +++ packages/zig/index.html | 10 ++++++++++ packages/zig/main.js | 11 +++++++++++ 5 files changed, 34 insertions(+) create mode 100644 packages/zig/README.md create mode 100755 packages/zig/add.wasm create mode 100644 packages/zig/add.zig create mode 100644 packages/zig/index.html create mode 100644 packages/zig/main.js diff --git a/packages/zig/README.md b/packages/zig/README.md new file mode 100644 index 000000000..66e38cf1b --- /dev/null +++ b/packages/zig/README.md @@ -0,0 +1,10 @@ +# zig testing ground + + + +```sh +# (re)compile add.zig +zig build-lib add.zig -target wasm32-freestanding -dynamic -rdynamic +# run server +npx http-server -o +``` diff --git a/packages/zig/add.wasm b/packages/zig/add.wasm new file mode 100755 index 0000000000000000000000000000000000000000..ad6f38d4b284843d1f1d79c91f4967bd887d7bc4 GIT binary patch literal 6436 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 + + + ZIG / WASM Demo + + +

check the console

+ + + diff --git a/packages/zig/main.js b/packages/zig/main.js new file mode 100644 index 000000000..7540c86c0 --- /dev/null +++ b/packages/zig/main.js @@ -0,0 +1,11 @@ +async function run() { + let res = await fetch('./add.wasm'); + res = await res.arrayBuffer(); + res = await WebAssembly.instantiate(res, { + env: {}, + }); + const { add } = res.instance.exports; + console.log(add(3, 5)); +} + +run();