Return to Notes

Release · 2026-09-16 · 4 min read

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

By Amber Core Team

Amber v1.16.0

v1.16.0 is a runtime release, not a marketing reset. The binary is still amber. 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('amber:wasm') exposes host pointers. This is Preview. V8 still compiles Wasm; Amber does not ship a custom JIT.

amber bundle and amber compile

Both Preview.

  • amber bundle walks static local imports with oxc, wraps modules in __amberjs_require__, optional minify.
  • amber compile copies the host amber binary and appends a payload plus a AMBER_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:

WorkloadAmberNode
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

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

Install:

curl -fsSL https://get.amberjs.com/install.sh | AMBER_VERSION=v1.16.0 sh