Skip to content

Repository files navigation

GitHub Workflow StatusGitHub LicenseNPM Version

wasmup

Wasm build, made easy

Warning

It's in early development status, use in your own risk.

features

  • Build a set of code that can run seamlessly in Node.js, Deno, Bun, and browsers.
  • No setup needed, just use directly.
  • The generated package.json in pretty order.
  • Add parameter validation to functions.

Usage

Requires Node.js >=20.19.0.

pnpm install -D wasmup
{
// ..."scripts": {
"build": "wasmup build --clean .",
},
}

Runtime usage (Node.js / Bun / Deno / Web)

Use the same ESM API in all runtimes:

importinit,{hello_world}from"your-wasm-package"awaitinit()console.log(hello_world())

For sync initialization:

  1. initSync is only supported in Node.js, Bun and Deno.
  2. initSync is not supported in browsers.

For browser deployment:

  1. Keep index_bg.wasm accessible by URL.
  2. index_bg.wasm should be deployed next to the generated JS entry (or with an equivalent URL mapping).

Configuration

The Wasmup configuration file may be named any of the following:

  • wasmup.config.js
  • wasmup.config.cjs
  • wasmup.config.mjs
  • wasmup.config.ts
  • wasmup.config.mts
  • wasmup.config.cts
  • wasmup.config.json

It should be placed in the root directory of your project and export an configuration objects. Here’s an example:

import{defineConfig}from"wasmup"exportdefaultdefineConfig({clean: true,output: "packages/toml-edit-js",scope: "rainbowatcher",})

wasm-opt options

you can pass wasm-opt params by config in Cargo.toml, details ref to this link: cargo-toml-configuration

[package.metadata.wasm-pack.profile.release]
wasm-opt = [
# Optimize level 4"-O4",
# Run passes to convergence, continuing while binary size decreases"--converge",
"--strip-debug",
"--strip-dwarf",
# flattens out code, removing nesting"--flatten",
# inline small functions"--inlining",
# removes unreachable code"--dead-code-elimination",
"--minify-imports-and-exports-and-modules",
# Grand Unified Flow Analysis"--gufa",
]

License

MIT © Made by ❤️

About

wasm pack, made easy

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages