On this page

Node API Compatibility List

Deno provides polyfills for a number of built-in Node.js modules and globals. For a full list of Node built-in modules, see the reference.

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 module support Jump to heading

✅ = Full support
ℹ️ = Partial support
❌ = Stubs only
node:assert

Fully supported.

Reference docs

node:async_hooks
ℹ️

AsyncLocalStorage is supported. AsyncResource, executionAsyncId, and createHook are non-functional stubs.

Reference docs

node:buffer

Fully supported.

Reference docs

node:child_process

Fully supported.

Reference docs

node:cluster

All exports are non-functional stubs.

Reference docs

node:console

Fully supported.

Reference docs

node:crypto

Missing Certificate class, crypto.Cipheriv.prototype.setAutoPadding, crypto.Decipheriv.prototype.setAutoPadding, crypto.publicDecrypt, crypto.ECDH.prototype.convertKey, x448 option for generateKeyPair, crypto.KeyObject, safe, add and rem options for generatePrime, crypto.Sign.prototype.sign and crypto.Verify.prototype.verify with non BinaryLike input, crypto.secureHeapUsed, crypto.setEngine, legacy methods of crypto.X509Certificate.

Reference docs

node:dgram
ℹ️

Some dgram.Socket instance methods are non-functional stubs:

  • addMembership
  • addSourceSpecificMembership
  • dropMembership
  • dropSourceSpecificMembership
  • setBroadcast
  • setMulticastInterface
  • setMulticastLoopback
  • setMulticastTtl
  • setTtl

Reference docs

node:diagnostics_channel

Fully supported.

Reference docs

node:dns
ℹ️

Missing dns.resolve* with ttl option.

Reference docs

node:domain

All exports are non-functional stubs. This is a deprecated Node module.

Reference docs

node:events

Fully supported.

Reference docs

node:fs
node:fs

Missing utf16le, latin1 and ucs2 encoding for fs.writeFile and fs.writeFileSync.

node:fs/promises

Missing lchmod.

Reference docs

node:http

createConnection option is currently not supported.

Reference docs

node:http2
ℹ️

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

Reference docs

node:https
ℹ️

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

Reference docs

node:inspector
ℹ️

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.

Reference docs

node:module

The `register()` function is not supported.

Reference docs

node:net
ℹ️

Missing net.Socket.prototype.constructor with fd option.

Reference docs

node:os

Fully supported.

Reference docs

node:path

Fully supported.

Reference docs

node:perf_hooks
ℹ️

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

Reference docs

node:punycode

Fully supported.

Reference docs

node:process
ℹ️

Missing multipleResolves, worker events.

Reference docs

node:querystring

Fully supported.

Reference docs

node:readline

Fully supported.

Reference docs

node:repl
ℹ️

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

Reference docs

node:stream

Fully supported.

Reference docs

node:string_decoder

Fully supported.

Reference docs

node:sys

Fully supported.

Reference docs

node:test
ℹ️

Currently only test API is supported.

Reference docs

node:timers

Fully supported.

Reference docs

node:tls
ℹ️

Missing createSecurePair.

Reference docs

node:trace_events

All exports are non-functional stubs.

Reference docs

node:tty

Fully supported.

Reference docs

node:util
ℹ️

Missing aborted, transferableAbortSignal, transferableAbortController, MIMEParams, MIMETypeand getSystemErrorMap.

Reference docs

node:url

Fully supported.

Reference docs

node:v8
ℹ️

cachedDataVersionTag and getHeapStatistics are supported. setFlagsFromStrings is a noop. Other APIs are not supported and will throw and error.

Reference docs

node:vm
ℹ️

Partial support.

Reference docs

node:wasi

All exports are non-functional stubs.

Reference docs

node:worker_threads
ℹ️

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

Reference docs

node:zlib

Fully supported.

Reference docs

Globals Jump to heading

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 name Status
AbortController
AbortSignal
Blob
Buffer
ByteLengthQueuingStrategy
__dirname ⚠️ Info
__filename ⚠️ Info
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