yarn add -D vite-wasm-zig
// vite.config.{js, ts}
import zig from 'vite-wasm-zig';
export default defineConfig(({ mode }) => {
return {
plugins: {
zig({
// Enable this option require `wasm-opt` installed on your $PATH.
optimize: mode === 'production',
// Other options goes here
})
}
}
}
// main.zig
export fn add(a: i32, b: i32) i32 {
return a + b;
}
// index.{js,ts}
import init from "./main.zig?init";
function someFunc() {
const importObject = {
/* ... */
};
init(importObject).then((instance) => {
console.log(instance.exports.add(1, 10));
});
}
// OR
// This plugin support SSR, so top level await is OK
const instance = await init(importObject)
console.log(instance.exports.add(1, 10));
export default instance.exports;
Add to tsconfig.json
:
{
"types": ["vite/client", "vite-wasm-zig/client"]
}
Until 1.0 release, this package don't follow Semver for versioning
MIT