Skip to content

API Examples

This page shows practical snippets for wasm-memx APIs.

1) SharedMemoryBase + view reuse

ts
import { SharedMemoryBase } from "wasm-memx";

const mem = new SharedMemoryBase(64 * 1024);
const buf = mem.getBuffer();

const signals = new Int32Array(buf, 0, 4);
const data = new Float32Array(buf, 16, 1024);

signals[0] = 0;
data[0] = 3.14;

2) MemoryManager region allocation

ts
import { MemoryManager } from "wasm-memx";

const mm = new MemoryManager(256 * 1024, {
  vertices: 128 * 1024,
  indices: 64 * 1024,
  uvs: 32 * 1024,
  normals: 32 * 1024,
});

const sab = mm.getBuffer();
const offset = mm.alloc("vertices", 4 * 1024, 4);
const vertices = new Float32Array(sab, offset, (4 * 1024) / 4);

3) SharedModelBuffer

ts
import { SharedModelBuffer } from "wasm-memx";

const buf = new SharedModelBuffer(1000, 3000);
buf.getPositions().set([0, 0, 0, 1, 0, 0, 0, 1, 0]);
buf.getIndices().set([0, 1, 2]);

4) Math3D

ts
import { Math3D } from "wasm-memx";

const a = new Float32Array([1, 2, 3]);
const b = new Float32Array([4, 5, 6]);
console.log(Math3D.vec3Add(a, b));

5) Passing SAB to Node.js Worker

ts
import { Worker } from "node:worker_threads";
import { SharedMemoryBase } from "wasm-memx";

const mem = new SharedMemoryBase(1024);
new Worker("./worker.js", { workerData: mem.getBuffer() });

MIT Licensed