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 bundlewalks static local imports with oxc, wraps modules in__beejs_require__, optional minify.bee compilecopies the hostbeebinary and appends a payload plus aBEE_STANDALONEtrailer.
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:
| Workload | Beejs | Node |
|---|---|---|
| URL + URLSearchParams (20k) | 7.28 ms | 12.54 ms |
| fetch 100 sequential GETs | 6.51 ms | 17.00 ms |
| ReadableStream 5k chunks | 0.92 ms | 1.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