On this page
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 module support Jump to heading
    node:async_hooks
    
      ℹ️
    
  
  
    AsyncLocalStorage is supported. AsyncResource,{" "}
    executionAsyncId, and createHook are
    non-functional stubs.
  
    node:child_process
    
      ℹ️
    
  
  
    The ipc and overlapped stdio options are missing.
    Passing file descriptors by an integer value is missing.
  
    node:crypto
    
      ℹ️
    
  
  
    Missing Certificate class,{" "}
    crypto.Cipheriv.prototype.setAutoPadding,{" "}
    crypto.Decipheriv.prototype.setAutoPadding,{" "}
    crypto.getCipherInfo, crypto.publicDecrypt,{" "}
    crypto.ECDH.prototype.convertKey,{" "}
    crypto.diffieHellman, 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.
  
    node:dgram
    
      ℹ️
    
  
  
    Some dgram.Socket instance methods are non-functional stubs:
    
- addMembership
- addSourceSpecificMembership
- dropMembership
- dropSourceSpecificMembership
- setBroadcast
- setMulticastInterface
- setMulticastLoopback
- setMulticastTtl
- setTtl
- ref
- unref
    node:fs
    
      ℹ️
    
  
  
    node:fs
  
  
    Missing utf16le, latin1 and ucs2{" "}
    encoding for fs.writeFile and fs.writeFileSync.
    Missing Dirent.isBlockDevice,{" "}
    Dirent.isCharacterDevice, Dirent.isFIFO,{" "}
    Dirent.isSocket, FSWatcher.ref,{" "}
    FSWatcher.unref.
  
    node:fs/promises
  
  
    Missing lchmod, lchown, lutimes.
  
    node:https
    
      ℹ️
    
  
  
    Missing https.Server.opts.cert and{" "}
    https.Server.opts.key array type.
  
    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.
  
    node:perf_hooks
    
      ℹ️
    
  
  
    Missing perf_hooks.eventLoopUtilization,{" "}
    perf_hooks.timerify,{" "}
    perf_hooks.monitorEventLoopDelay.
  
    node:repl
    
      ℹ️
    
  
  
    builtinModules and _builtinLibs are supported.
    Missing REPLServer.prototype.constructor and{" "}
    start().
  
    node:string_decoder
    
      ℹ️
    
  
  
    Missing decoding of ascii, latin1 and{" "}
    utf16le decoding options.
  
    node:util
    
      ℹ️
    
  
  
    Missing aborted, transferableAbortSignal, transferableAbortController, MIMEParams, MIMEType, getSystemErrorMap, and debug.
  
    node:v8
    
      ℹ️
    
  
  
    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
    
      ℹ️
    
  
  
    runInThisContext is supported. Other APIs are not polyfilled
    and will throw and error.
  
    node:worker_threads
    
      ℹ️
    
  
  
    Missing parentPort.emit,{" "}
    parentPort.removeAllListeners,{" "}
    markAsUntransferable, moveMessagePortToContext,{" "}
    receiveMessageOnPort,{" "}
    Worker.prototype.getHeapSnapshot.
  
    node:zlib
    
      ℹ️
    
  
  
    Missing Options.prototype.constructor,{" "}
    BrotliOptions.prototype.constructor,{" "}
    BrotliDecompress.prototype.constructor,{" "}
    ZlibBase.prototype.constructor.
  
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.