Amber

v1.17.0

HomeDocsCompatibilityBlogPlaygroundGitHub
GitHub

v1.17.0

Docs/Compatibility

Node.js compatibility

Stable

Which Node modules are Stable, what each contract covers, and what stays out.

Amber is not a drop-in Node.js replacement. Each module below is Stable only for the methods named in its contract. Everything else in src/nodejs_core/ is Preview. For a searchable view, use the compatibility page.

Modules and loading

APIIdNotes
CommonJS require, module.exports, require.resolve, createRequireG28 (provisional)node_modules walk, "exports" / "imports" / "main", JSON, TS, and ESM via require. No require.cache; resolve errors have no code.
node: and bare builtin namesG28Loading a builtin does not make its whole API Stable.

File system and paths

APIIdNotes
fs, fs/promisesG8, G77Byte read and write, mkdir, stat, copyFile, rm, realpath, fds, chmod, access, existsSync, readdir dirents, system errors. promises.open returns a FileHandle. Async work runs on the isolate thread at the next tick.
fs.watch, fs.watchFileG64 (tentative)Real OS watcher and stat polling. No fs.promises.watch.
fs.cp, fs.opendir, fs.statfsG76 (tentative)Recursive copy, a Dir snapshot, and Unix statfs.
pathG17POSIX semantics. path.win32 only changes sep and delimiter.

fs.glob is not implemented.

Core utilities

APIIdNotes
events (EventEmitter)G18No events.on async iterator.
buffer / BufferG19from, alloc, concat, byteLength, toString, slice. compare and readUInt* are outside the pin.
utilG22, G59format, shallow inspect, promisify, callbackify, inherits, listed util.types.
processG22, G44, G53, G54, G70nextTick, env, cwd, pid, platform, stdout.write, hrtime, memoryUsage, and stdin UTF-8 string chunks. Heap fields are estimates; process.on / off are no-ops and not Stable.
osG20, G62, G63Host info, hostname, real networkInterfaces.
querystringG38Fixed & and = separators.
string_decoderG39, G68UTF-8 plus latin1, ascii, base64, hex, utf16le. No base64url.
assertG40, G69ok, strictEqual, deepStrictEqual, throws, match, rejects, and a few more. Loose equal semantics are not pinned.
timers, timers/promisesG42, G50Same functions as the globals; Promise setTimeout and setImmediate with AbortSignal.
tty.isattyG49Always false on Windows today.
vmG55, G66 (tentative)runInThisContext and runInNewContext. Not full Contextify.
vm.createContextG73createContext / isContext markers and runInContext. Persistent context reuse stays out.
diagnostics_channelG56 (tentative)channel pub/sub and tracingChannel.traceSync.
async_hooksG57 (tentative)AsyncResource and AsyncLocalStorage. No createHook.
readlineG46 (tentative)question() on host stdin and stdout only.

Crypto and compression

APIIdNotes
crypto hashes and randomG23createHash, createHmac (md5, sha1, sha256, sha384, sha512, blake3), randomBytes, randomUUID, timingSafeEqual. Returns Uint8Array.
crypto AES ciphersG43, G51, G52createCipheriv / createDecipheriv for AES-CBC, AES-GCM, and AES-CTR.
zlibG21, G48, G58Sync and callback gzip, deflate, and raw deflate.

KDF, sign and verify, key pairs, KeyObject, brotli, and streaming createGzip are not Stable.

Processes and networking

APIIdNotes
child_process syncG25execSync, spawnSync. pid is 0.
child_process asyncG47, G60, G67exec, execFile, spawn with captured output, and fork with JSON IPC. No live stdio pipes.
http serverG37 (tentative)createServer, listen, buffered responses, keep-alive.
http clientG72request / get, one buffered HTTP/1.1 body. No https, Agent, or chunked streaming.
perf_hooksG74performance, PerformanceObserver, timerify.
worker_threadsG75Real OS thread, JSON postMessage. No transferList or nested workers.
net server and clientG45, G61 (tentative)createServer listen and accept; net.connect client.
dnsG27, G65lookup, resolve*, reverse, getServers from the OS resolver.
urlG26POSIX fileURLToPath and pathToFileURL. Legacy parse is outside.
streamG24, G71Readable, Writable, PassThrough, Transform, and callback pipeline. No Duplex or stream/promises.

Not supported

These fail or reject instead of pretending to work:

  • http.Agent, the https module, and http2.
  • Streaming zlib.createGzip family, brotli, and zlib.constants.
  • Node native addons beyond the Experimental N-API hello loader.

Conformance

The Node conformance scorecard in tests/conformance/ is 56/56 on main. See Stability levels for what that number does and does not mean.

Edit this page on GitHub