Return to Notes

Release · 2026-09-16 · 4 min read

Beejs v1.16.0: Wasm 2.0, packaging, and web hot paths

By Beejs Core Team

Beejs v1.16.0

v1.16.0 is a runtime release, not a marketing reset. The binary is still bee. The capability map is still Current Scope. Node.js Conformance 5.0 is still 55/55.

What changed:

Wasm Engine 2.0

WebAssembly.Memory and V8 ArrayBuffer can share a backing store (new_backing_store_from_ptr). Large modules can be mmap'd. require('bee:wasm') exposes host pointers. This is Preview. V8 still compiles Wasm; Beejs does not ship a custom JIT.

bee bundle and bee compile

Both Preview.

  • bee bundle walks static local imports with oxc, wraps modules in __beejs_require__, optional minify.
  • bee compile copies the host bee binary and appends a payload plus a BEE_STANDALONE trailer.

Neither is webpack, esbuild, or pkg.

URL / fetch / ReadableStream

The previous JS wrappers were the bottleneck. v1.16.0 puts URL parsing, HTTP/1.1 keep-alive GET, and the ReadableStream queue on a JIT-friendly path.

On Apple M2 Max, 2026-09-16, vs Node v22.22.3:

WorkloadBeejsNode
URL + URLSearchParams (20k)7.28 ms12.54 ms
fetch 100 sequential GETs6.51 ms17.00 ms
ReadableStream 5k chunks0.92 ms1.16 ms

Bun still wins several microbenches and cold start. Numbers live in benchmarks/.

What did not change

Beejs is not a Node.js clone. Coverage is per-API. Package management, N-API, and several CLI extras stay Experimental.

Install:

curl -fsSL https://bee.zhanghe.dev/install.sh | BEEJS_VERSION=v1.16.0 sh