Install
What Warm64 needs, and how to build the package from its source.
Warm64 is the npm package warm64: the WebAssembly cores, the JavaScript API, and the wemu-system-aarch64 and wemu-img commands.
Note The package isn't published to npm yet. Until it is, build it from a checkout of the source, as below. Contact us for access.
Requirements
| To | You need |
|---|---|
| Run it | Node 24 or later, or a current browser |
| Build it | Rust with the wasm32-unknown-unknown target, and Node 24 with npm |
| Build the 64-bit, threads and GPU cores | Rust nightly with the rust-src component |
Building from source
In a checkout of the Warm64 source:
rustup target add wasm32-unknown-unknown
npm install
npm run buildnpm run build compiles the standard core, wasm/warm64.wasm, and the TypeScript package in dist/. The other cores have their own scripts:
| Script | Builds | Used for |
|---|---|---|
npm run build:wasm64 | warm64-memory64.wasm | More than 3 GiB of RAM on one core |
npm run build:wasm-threads | warm64-threads.wasm | More than one core |
npm run build:wasm-gpu | warm64-gpu.wasm | A virtio GPU without shared memory |
npm run build:wasm-gpu-threads | warm64-gpu-threads.wasm | A virtio GPU, in Node or a cross-origin-isolated page |
Link it to use the commands anywhere:
npm link
wemu-system-aarch64 -version
# WEMU emulator version 11.1.50 (warm64 0.1.0)Using it from a project
import { WEMU } from "warm64"; // the machine, both platforms
import { nodeWEMUHost } from "warm64/wemu-node"; // Node's hostIn a browser, serve the package's dist/ and wasm/ directories side by side. See Embedding in a web page.