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 bundlewalks static local imports with oxc, wraps modules in__amberjs_require__, optional minify.amber compilecopies the hostamberbinary and appends a payload plus aAMBER_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 | Amber | 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
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