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
Module | Support Level | Notes |
---|---|---|
node:assert | ✅ Full | |
node:assert/strict | ✅ Full | |
node:async_hooks | ℹ️ Partial | AsyncLocalStorage is supported.AsyncResource ,executionAsyncId , andcreateHook are non-functional stubs. |
node:buffer | ✅ Full | |
node:child_process | ℹ️ Partial | The ipc and overlapped stdio options are missing. Passing file descriptors by an integer value is missing. |
node:cluster | ❌ Missing | All exports are non-functional stubs. |
node:console | ✅ Full | |
node:crypto | ℹ️ Partial | Missing 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 BinaryLike input, crypto.secureHeapUsed , crypto.setEngine , legacy methods of crypto.X509Certificate . |
node:dgram | ℹ️ Full | |
node:diagnostics_channel | ✅ Full | |
node:dns | ℹ️ Partial | Missing |
node:domain | ❌ Missing | All exports are non-functional stubs. |
node:events | ✅ Full | |
node:fs | ℹ️ Partial | Missing |
node:fs/promises | ℹ️ Partial | Missing |
node:http | ℹ️ Partial |
|
node:http2 | ℹ️ Partial | Partially supported, major work in progress to enable |
node:https | ℹ️ Partial | Missing |
node:inspector | ℹ️ Partial |
|
node:module | ✅ Full | |
node:net | ℹ️ Partial | Missing |
node:os | ✅ Full | |
node:path | ✅ Full | |
node:path/posix | ✅ Full | |
node:path/win32 | ✅ Full | |
node:perf_hooks | ℹ️ Partial | Missing |
node:process | ℹ️ Partial | Missing |
node:punycode | ✅ Full | |
node:querystring | ✅ Full | |
node:readline | ✅ Full | |
node:repl | ℹ️ Partial |
|
node:stream | ✅ Full | |
node:stream/consumers | ✅ Full | |
node:stream/promises | ✅ Full | |
node:stream/web | ✅ Full | |
node:string_decoder | ℹ️ Partial | Missing decoding of |
node:sys | ✅ Full | See |
node:test | ℹ️ Partial | Currently only |
node:timers | ✅ Full | |
node:timers/promises | ✅ Full | |
node:tls | ℹ️ Partial | Missing |
node:trace_events | ❌ Missing | All exports are non-functional stubs. |
node:tty | ℹ️ Partial | Missing |
node:url | ✅ Full | |
node:util | ✅ Full | |
node:util/types | ✅ Full | |
node:v8 | ℹ️ Partial |
|
node:vm | ℹ️ Partial |
|
node:wasi | ❌ Missing | All exports are non-functional stubs. |
node:worker_threads | ℹ️ Partial | Missing |
node:zlib | ℹ️ Partial | Missing |
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.