Skip to main content
On this page

Node APIs

Deno provides polyfills for a number of built-in Node.js modules and globals.

Explore built-in Node APIs

Node compatibility is an ongoing project - help us identify gaps and let us know which modules you need by opening an issue on GitHub.

Compatibility status Jump to heading

= Full support
= Partial support
= Stubs only or unsupported

AsyncResource: The AsyncResource implementation is a non-functional stub.
executionAsyncId: The executionAsyncId implementation is a non-functional stub.
createHook: The createHook implementation is a non-functional stub.

All exports are non-functional stubs.

All symbols: This symbol is a non-functional stub.

Certificate: The methods are non-functional stubs.
generateKeyPair: The x448 option is not supported.
generatePrime: The safe, add and rem option is not supported.
KeyObject: The methods are non-functional stubs.
publicDecrypt: This symbol is a non-functional stub.
secureHeapUsed: This symbol is a non-functional stub.
setEngine: This symbol is a non-functional stub.
ECDH: The convertKey method is a non-functional sub.
Sign: The sign and verify methods are not supported with non BinaryLike input.

Socket: The following methods are non-functional stubs:

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

resolve: The ttl option is not supported.
resolve4: The ttl option is not supported.
resolve6: The ttl option is not supported.
resolveCname: The ttl option is not supported.
resolveCaa: The ttl option is not supported.
resolveMx: The ttl option is not supported.
resolveNaptr: The ttl option is not supported.
resolveNs: The ttl option is not supported.
resolvePtr: The ttl option is not supported.
resolveSoa: The ttl option is not supported.
resolveSrv: The ttl option is not supported.
resolveTxt: The ttl option is not supported.
resolveAny: The ttl option is not supported.

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

All symbols: This symbol is a non-functional stub.

writeFile: Missing utf16le, latin1 and ucs2 encoding.
writeFileSync: Missing utf16le, latin1 and ucs2 encoding.

lchmod: The lchmod implementation is a non-functional stub.

RequestOptions: Option createConnection is not supported.
ClientRequestArgs: Option createConnection is not supported.
ClientRequest: Constructor option createConnection is not supported.
request: Constructor option createConnection is not supported.
get: Constructor option createConnection is not supported.

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

Server: The cert and key options do not support an array input.

console is supported. Other APIs are non-functional stubs and will throw an error.

Module: The register method is not supported.

Socket: The fd option is not supported.

performance: The eventLoopUtilization method is a non-functional stub. The timerify method is not implemented.
monitorEventLoopDelay: This symbol is not implemented.

The multipleResolves and worker events are not supported.

REPLServer: This symbol is not supported.
start: This symbol is not supported.

This module is not implemented.

All symbols: This module is not implemented.

Currently only test API is supported.

createSecurePair: This symbol is currently not supported.

All exports are non-functional stubs.

All symbols: This symbol is a non-functional stub.

transferableAbortSignal: This symbol is currently not supported.
transferableAbortController: This symbol is currently not supported.
MIMEParams: This symbol is currently not supported.
MIMEType: This symbol is currently not supported.
getSystemErrorMap: This symbol is currently not supported.

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

setFlagsFromStrings: This function is a noop.

This module is supported only partially.

All exports are non-functional stubs.

All symbols: This symbol is a non-functional stub.

parentPort: The emit method is not supported. The removeAllListeners method is not supported.
markAsUntransferable: This symbol is not supported.
moveMessagePortToContext: This symbol is not supported.
receiveMessageOnPort: This symbol is not supported.
Worker: The getHeapSnapshot method is not supported.

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