For using Odin and WASM together.
A library of wasm bindings from Odin/vendor/wasm
implemented using modern JavaScript with ES modules and JSDoc.
The implementation is mostly the same as the original, here are the differences:
- ESM - it was written to be used in a modern JS environment, assuming that the user will use a bundler like Webpack or Rollup to bundle the code, and tree-shake the unused parts.
- JSDoc - the original bindings are not documented, so I added JSDoc to the bindings to make it easier to use them.
- Improvements to getting window position and size
In example/
you can find an example of how to use Odin and WASM together. Mainly focused on WebGL as I'm going through the WebGL Fundamentals tutorial.
Feel free to use this repo as a template for your own projects.
There are some convenience scripts in main.js
for building and running the example. And a github action for building and deploying the example to github pages.
- Odin (and LLVM)
- Node 20
- Chrome Devtools Support: for debugging (optional)
Add js_wasm32
target to ols.json
if you want to use OLS:
{
"checker_args": "-target:js_wasm32 -vet-unused -vet-shadowing -vet-style -vet-semicolon",
"enable_format": false
}
Take look at package.json
for all the available scripts.
(You need to run npm i
beforehand)
The most important ones are:
npm run dev
- starts the server and watches for changesnpm run build
- builds the example todist/
npm run preview
- starts a server to preview the built example