Skip to main content

Node API Compatibility List

Deno provides polyfills for a number of built-in Node.js modules and globals. Node compatibility is an ongoing project - help us identify gaps and let us know which modules you need by opening an issue on GitHub.

Built-in modules

ModuleSupport LevelNotes
node:assert✅ Full
node:assert/strict✅ Full
node:async_hooksℹ️ PartialAsyncLocalStorage is supported.AsyncResource,executionAsyncId, andcreateHook are non-functional stubs.
node:buffer✅ Full
node:child_processℹ️ PartialThe ipc and overlapped stdio options are missing. Passing file descriptors by an integer value is missing.
node:cluster❌ MissingAll exports are non-functional stubs.
node:console✅ Full
node:cryptoℹ️ PartialMissing Certificate class,crypto.Cipheriv.prototype.setAutoPadding,crypto.Decipheriv.prototype.setAutoPadding,crypto.getCipherInfo, crypto.publicDecrypt,crypto.ECDH.prototype.convertKey,crypto.diffieHellman, x448 option forgenerateKeyPair, crypto.KeyObject,safe, add and rem options forgeneratePrime, crypto.Sign.prototype.sign andcrypto.Verify.prototype.verify with non BinaryLikeinput, crypto.secureHeapUsed, crypto.setEngine, legacy methods of crypto.X509Certificate.
node:dgramℹ️ Full
node:diagnostics_channel✅ Full
node:dnsℹ️ Partial

Missing dns.resolve* with ttl option.

node:domain❌ MissingAll exports are non-functional stubs.
node:events✅ Full
node:fsℹ️ Partial

Missing utf16le, latin1 and ucs2encoding for fs.writeFile andfs.writeFileSync. Missing Dirent.isBlockDevice,Dirent.isCharacterDevice,Dirent.isFIFO, Dirent.isSocket,FSWatcher.ref, FSWatcher.unref.

node:fs/promisesℹ️ Partial

Missing lchmod, lchown, lutimes.

node:httpℹ️ Partial

createConnection option is currently not supported.

node:http2ℹ️ Partial

Partially supported, major work in progress to enable grpc-js.

node:httpsℹ️ Partial

Missing https.Server.opts.cert andhttps.Server.opts.key array type.

node:inspectorℹ️ Partial

console is supported. Other APIs are stubs and will throw an error. Due to security implications the Deno team does not plan to polyfill these APIs.

node:module✅ Full
node:netℹ️ Partial

Missing net.Socket.prototype.constructor with fdoption.

node:os✅ Full
node:path✅ Full
node:path/posix✅ Full
node:path/win32✅ Full
node:perf_hooksℹ️ Partial

Missing perf_hooks.eventLoopUtilization,perf_hooks.timerify,perf_hooks.monitorEventLoopDelay.

node:processℹ️ Partial

Missing disconnect, message,multipleResolves, rejectionHandled andworker events.

node:punycode✅ Full
node:querystring✅ Full
node:readline✅ Full
node:replℹ️ Partial

builtinModules and _builtinLibs are supported. Missing REPLServer.prototype.constructor andstart().

node:stream✅ Full
node:stream/consumers✅ Full
node:stream/promises✅ Full
node:stream/web✅ Full
node:string_decoderℹ️ Partial

Missing decoding of ascii, latin1 andutf16le decoding options.

node:sys✅ Full

See node:util.

node:testℹ️ Partial

Currently only test API is supported.

node:timers✅ Full
node:timers/promises✅ Full
node:tlsℹ️ Partial

Missing createSecurePair.

node:trace_events❌ Missing

All exports are non-functional stubs.

node:ttyℹ️ Partial

Missing ReadStream and WriteStreamimplementation.

node:url✅ Full
node:util✅ Full
node:util/types✅ Full
node:v8ℹ️ Partial

cachedDataVersionTag and getHeapStatistics are supported. setFlagsFromStrings is a noop. Other APIs are not supported and will throw and error. The other APIs could be polyfilled, but due inherent lack of format stability between the V8 versions, the Deno team is considering requiring a special flag to use them.

node:vmℹ️ Partial

runInThisContext is supported. Other APIs are not polyfilled and will throw and error.

node:wasi❌ Missing

All exports are non-functional stubs.

node:worker_threadsℹ️ Partial

Missing parentPort.emit,parentPort.removeAllListeners,markAsUntransferable, moveMessagePortToContext,receiveMessageOnPort,Worker.prototype.getHeapSnapshot.

node:zlibℹ️ Partial

Missing Options.prototype.constructor,BrotliOptions.prototype.constructor,BrotliDecompress.prototype.constructor,ZlibBase.prototype.constructor.

Globals

This is the list of Node globals that Deno supports.

These globals are only available in the npm package scope. In your own code you can use them by importing them from the relevant node: module.

Global nameStatus
AbortController
AbortSignal
Blob
Buffer
ByteLengthQueuingStrategy
__dirname
__filename
atob
BroadcastChannel
btoa
clearImmediate
clearInterval
clearTimeout
CompressionStream
console
CountQueuingStrategy
Crypto
CryptoKey
CustomEvent
CustomEvent
DecompressionStream
Event
EventTarget
exports
fetch
fetch
File
File
FormData
global
Headers
MessageChannel
MessageEvent
MessagePort
module
PerformanceEntry
PerformanceMark
PerformanceMeasure
PerformanceObserver
PerformanceObserverEntryList
PerformanceResourceTiming
performance
process
queueMicrotask
ReadableByteStreamController
ReadableStream
ReadableStreamBYOBReader
ReadableStreamBYOBRequest
ReadableStreamDefaultController
ReadableStreamDefaultReader
require
Response
Request
setImmediate
setInterval
setTimeout
structuredClone
structuredClone
SubtleCrypto
DOMException
TextDecoder
TextDecoderStream
TextEncoder
TextEncoderStream
TransformStream
TransformStreamDefaultController
URL
URLSearchParams
URLSearchParams
WebAssembly
WritableStream
WritableStreamDefaultController
WritableStreamDefaultWriter