diff options
author | 2023-07-31 16:39:09 -0700 | |
---|---|---|
committer | 2023-07-31 16:39:09 -0700 | |
commit | dd8fdd87dc00717dee12d5e08492b120a238efa2 (patch) | |
tree | e96d729ab992c0aafea485af703efc9c18b749f7 | |
parent | 7b8df184b3ac7df715d7e57aa6514f47f100bb59 (diff) | |
download | bun-dd8fdd87dc00717dee12d5e08492b120a238efa2.tar.gz bun-dd8fdd87dc00717dee12d5e08492b120a238efa2.tar.zst bun-dd8fdd87dc00717dee12d5e08492b120a238efa2.zip |
Switch table to headings in Nodejs compat page
-rw-r--r-- | docs/runtime/nodejs-apis.md | 448 |
1 files changed, 444 insertions, 4 deletions
diff --git a/docs/runtime/nodejs-apis.md b/docs/runtime/nodejs-apis.md index 095728d60..1d8d1bf49 100644 --- a/docs/runtime/nodejs-apis.md +++ b/docs/runtime/nodejs-apis.md @@ -4,7 +4,171 @@ This page is updated regularly to reflect compatibility status of the latest ver ## Built-in modules -{% block className="ScrollFrame" %} +### [`node:assert`](https://nodejs.org/api/assert.html) 🟢 + +Fully implemented. + +### [`node:async_hooks`](https://nodejs.org/api/async_hooks.html) 🔴 + +Not implemented. + +### [`node:buffer`](https://nodejs.org/api/buffer.html) 🟢 + +Fully implemented. + +### [`node:child_process`](https://nodejs.org/api/child_process.html) 🟡 + +Missing IPC, `Stream` stdio, `proc.gid`, `proc.uid`, advanced serialization. + +### [`node:cluster`](https://nodejs.org/api/cluster.html) 🔴 + +Not implemented. + +### [`node:console`](https://nodejs.org/api/console.html) 🟢 + +Recommended to use `console` global instead + +### [`node:crypto`](https://nodejs.org/api/crypto.html) 🟡 + +Missing `crypto.Certificate` `crypto.ECDH` `crypto.KeyObject` `crypto.X509Certificate` `crypto.checkPrime{Sync}` `crypto.createPrivateKey` `crypto.createPublicKey` `crypto.createSecretKey` `crypto.diffieHellman` `crypto.generateKey{Sync}` `crypto.generateKeyPair{Sync}` `crypto.generatePrime{Sync}` `crypto.getCipherInfo` `crypto.{get|set}Fips` `crypto.hkdf` `crypto.hkdfSync` `crypto.secureHeapUsed` `crypto.setEngine` `crypto.sign` `crypto.verify`. Some methods are not optimized yet. + +### [`node:dgram`](https://nodejs.org/api/dgram.html) 🔴 + +Not implemented. + +### [`node:diagnostics_channel`](https://nodejs.org/api/diagnostics_channel.html) 🔴 + +Not implemented. + +### [`node:dns`](https://nodejs.org/api/dns.html) 🟢 + +Fully implemented. + +### [`node:domain`](https://nodejs.org/api/domain.html) 🟢 + +Fully implemented. + +### [`node:events`](https://nodejs.org/api/events.html) 🟡 + +Missing `EventEmitterAsyncResource` `events.on`. + +### [`node:fs`](https://nodejs.org/api/fs.html) 🟡 + +Missing `fs.fdatasync{Sync}` `fs.opendir{Sync}` `fs.{watchFile|unwatchFile}` `fs.{cp|cpSync}`. `fs.promises.open` incorrectly returns a file descriptor instead of a `FileHandle`. + +### [`node:http`](https://nodejs.org/api/http.html) 🟢 + +Fully implemented. + +### [`node:http2`](https://nodejs.org/api/http2.html) 🔴 + +Not implemented. + +### [`node:https`](https://nodejs.org/api/https.html) 🟢 + +Fully implemented. + +### [`node:inspector`](https://nodejs.org/api/inspector.html) 🔴 + +Not implemented. + +### [`node:module`](https://nodejs.org/api/module.html) 🟢 + +Fully implemented. + +### [`node:net`](https://nodejs.org/api/net.html) 🟡 + +Missing `net.{get|set}DefaultAutoSelectFamily` `net.SocketAddress` `net.BlockList`. + +### [`node:os`](https://nodejs.org/api/os.html) 🟢 + +Fully implemented. + +### [`node:path`](https://nodejs.org/api/path.html) 🟢 + +Fully implemented. + +### [`node:perf_hooks`](https://nodejs.org/api/perf_hooks.html) 🟡 + +Only `perf_hooks.performance.now()` and `perf_hooks.performance.timeOrigin` are implemented. Recommended to use `performance` global instead of `perf_hooks.performance`. + +### [`node:process`](https://nodejs.org/api/process.html) 🟡 + +See `Globals > process`. + +### [`node:punycode`](https://nodejs.org/api/punycode.html) 🟢 + +Fully implemented. _Deprecated by Node.js._ + +### [`node:querystring`](https://nodejs.org/api/querystring.html) 🟢 + +Fully implemented. + +### [`node:readline`](https://nodejs.org/api/readline.html) 🟢 + +Fully implemented. + +### [`node:repl`](https://nodejs.org/api/repl.html) 🔴 + +Not implemented. + +### [`node:stream`](https://nodejs.org/api/stream.html) 🟢 + +Fully implemented. + +### [`node:string_decoder`](https://nodejs.org/api/string_decoder.html) 🟢 + +Fully implemented. + +### [`node:sys`](https://nodejs.org/api/util.html) 🟡 + +See `node:util`. + +### [`node:timers`](https://nodejs.org/api/timers.html) 🟢 + +Recommended to use global `setTimeout`, et. al. instead. + +### [`node:tls`](https://nodejs.org/api/tls.html) 🟡 + +Missing `tls.createSecurePair` + +### [`node:trace_events`](https://nodejs.org/api/tracing.html) 🔴 + +Not implemented. + +### [`node:tty`](https://nodejs.org/api/tty.html) 🟡 + +Missing `tty.ReadStream` and `tty.WriteStream`. + +### [`node:url`](https://nodejs.org/api/url.html) 🟡 + +Missing `url.domainTo{ASCII|Unicode}`. Recommended to use `URL` and `URLSearchParams` globals instead. + +### [`node:util`](https://nodejs.org/api/util.html) 🟡 + +Missing `util.MIMEParams` `util.MIMEType` `util.formatWithOptions()` `util.getSystemErrorMap()` `util.getSystemErrorName()` `util.parseArgs()` `util.stripVTControlCharacters()` `util.transferableAbortController()` `util.transferableAbortSignal()`. + +### [`node:v8`](https://nodejs.org/api/v8.html) 🔴 + +`serialize` and `deserialize` use JavaScriptCore's wire format instead of V8's. Otherwise, not implemented. For profiling, use [`bun:jsc`](/docs/project/benchmarking#bunjsc) instead. + +### [`node:vm`](https://nodejs.org/api/vm.html) 🟡 + +Core functionality works, but VM modules are not implemented. `ShadowRealm` can be used. + +### [`node:wasi`](https://nodejs.org/api/wasi.html) 🟡 + +Partially implemented. + +### [`node:worker_threads`](https://nodejs.org/api/worker_threads.html) 🔴 + +Not implemented, but coming soon. + +### [`node:zlib`](https://nodejs.org/api/zlib.html) 🟡 + +Missing `zlib.brotli*` + +<!-- {% block className="ScrollFrame" %} {% table %} - Module @@ -257,13 +421,289 @@ This page is updated regularly to reflect compatibility status of the latest ver - Missing `zlib.brotli*` {% /table %} -{% /block %} +{% /block %} --> ## Globals The table below lists all globals implemented by Node.js and Bun's current compatibility status. -{% table %} +### [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) 🟢 + +Fully implemented. + +### [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) 🟢 + +Fully implemented. + +### [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) 🟢 + +Fully implemented. + +### [`Buffer`](https://nodejs.org/api/buffer.html#class-buffer) 🟡 + +Incomplete implementation of `base64` and `base64url` encodings. + +### [`ByteLengthQueuingStrategy`](https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy) 🟢 + +Fully implemented. + +### [`__dirname`](https://nodejs.org/api/globals.html#__dirname) 🟢 + +Fully implemented. + +### [`__filename`](https://nodejs.org/api/globals.html#__filename) 🟢 + +Fully implemented. + +### [`atob()`](https://developer.mozilla.org/en-US/docs/Web/API/atob) 🟢 + +Fully implemented. + +### [`BroadcastChannel`](https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel) 🔴 + +Not implemented. + +### [`btoa()`](https://developer.mozilla.org/en-US/docs/Web/API/btoa) 🟢 + +Fully implemented. + +### [`clearImmediate()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearImmediate) 🟢 + +Fully implemented. + +### [`clearInterval()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearInterval) 🟢 + +Fully implemented. + +### [`clearTimeout()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearTimeout) 🟢 + +Fully implemented. + +### [`CompressionStream`](https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream) 🔴 + +Not implemented. + +### [`console`](https://developer.mozilla.org/en-US/docs/Web/API/console) 🟢 + +Fully implemented. + +### [`CountQueuingStrategy`](https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy) 🟢 + +Fully implemented. + +### [`Crypto`](https://developer.mozilla.org/en-US/docs/Web/API/Crypto) 🟢 + +Fully implemented. + +### [`SubtleCrypto (crypto)`](https://developer.mozilla.org/en-US/docs/Web/API/crypto) 🟢 + +Fully implemented. + +### [`CryptoKey`](https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey) 🟢 + +Fully implemented. + +### [`CustomEvent`](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent) 🟢 + +Fully implemented. + +### [`DecompressionStream`](https://developer.mozilla.org/en-US/docs/Web/API/DecompressionStream) 🔴 + +Not implemented. + +### [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event) 🟢 + +Fully implemented. + +### [`EventTarget`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget) 🟢 + +Fully implemented. + +### [`exports`](https://nodejs.org/api/globals.html#exports) 🟢 + +Fully implemented. + +### [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/fetch) 🟢 + +Fully implemented. + +### [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData) 🟢 + +Fully implemented. Added in Bun 0.5.7. + +### [`global`](https://nodejs.org/api/globals.html#global) 🟢 + +Implemented. This is an object containing all objects in the global namespace. It's rarely referenced directly, as its contents are available without an additional prefix, e.g. `__dirname` instead of `global.__dirname`. + +### [`globalThis`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis) 🟢 + +Aliases to `global`. + +### [`Headers`](https://developer.mozilla.org/en-US/docs/Web/API/Headers) 🟢 + +Fully implemented. + +### [`MessageChannel`](https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel) 🟢 + +Fully implemented. + +### [`MessageEvent`](https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent) 🟢 + +Fully implemented. + +### [`MessagePort`](https://developer.mozilla.org/en-US/docs/Web/API/MessagePort) 🟢 + +Fully implemented. + +### [`module`](https://nodejs.org/api/globals.html#module) 🟢 + +Fully implemented. + +### [`PerformanceEntry`](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry) 🔴 + +Not implemented. + +### [`PerformanceMark`](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMark) 🔴 + +Not implemented. + +### [`PerformanceMeasure`](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceMeasure) 🔴 + +Not implemented. + +### [`PerformanceObserver`](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver) 🔴 + +Not implemented. + +### [`PerformanceObserverEntryList`](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserverEntryList) 🔴 + +Not implemented. + +### [`PerformanceResourceTiming`](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming) 🔴 + +Not implemented. + +### [`performance`](https://developer.mozilla.org/en-US/docs/Web/API/performance) 🟢 + +Fully implemented. + +### [`process`](https://nodejs.org/api/process.html) 🟡 + +Missing `process.allowedNodeEnvironmentFlags` `process.channel()` `process.connected` `process.constrainedMemory()` `process.disconnect()` `process.getActiveResourcesInfo/setActiveResourcesInfo()` `process.setuid/setgid/setegid/seteuid/setgroups()` `process.hasUncaughtExceptionCaptureCallback` `process.initGroups()` `process.report` `process.resourceUsage()` `process.send()`. + +### [`queueMicrotask()`](https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask) 🟢 + +Fully implemented. + +### [`ReadableByteStreamController`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController) 🟢 + +Fully implemented. + +### [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) 🟢 + +Fully implemented. + +### [`ReadableStreamBYOBReader`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBReader) 🔴 + +Not implemented. + +### [`ReadableStreamBYOBRequest`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBRequest) 🔴 + +Not implemented. + +### [`ReadableStreamDefaultController`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController) 🟢 + +Fully implemented. + +### [`ReadableStreamDefaultReader`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader) 🟢 + +Fully implemented. + +### [`require()`](https://nodejs.org/api/globals.html#require) 🟢 + +Fully implemented, as well as [`require.main`](https://nodejs.org/api/modules.html#requiremain), [`require.cache`](https://nodejs.org/api/modules.html#requirecache), and [`require.resolve`](https://nodejs.org/api/modules.html#requireresolverequest-options) + +### [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) 🟢 + +Fully implemented. + +### [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request) 🟢 + +Fully implemented. + +### [`setImmediate()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/setImmediate) 🟢 + +Fully implemented. + +### [`setInterval()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval) 🟢 + +Fully implemented. + +### [`setTimeout()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout) 🟢 + +Fully implemented. + +### [`structuredClone()`](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone) 🟢 + +Fully implemented. + +### [`SubtleCrypto`](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto) 🟢 + +Fully implemented. + +### [`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException) 🟢 + +Fully implemented. + +### [`TextDecoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder) 🟢 + +Fully implemented. + +### [`TextDecoderStream`](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoderStream) 🔴 + +Not implemented. + +### [`TextEncoder`](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder) 🟢 + +Fully implemented. + +### [`TextEncoderStream`](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoderStream) 🔴 + +Not implemented. + +### [`TransformStream`](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream) 🟢 + +Fully implemented. + +### [`TransformStreamDefaultController`](https://developer.mozilla.org/en-US/docs/Web/API/TransformStreamDefaultController) 🟢 + +Fully implemented. + +### [`URL`](https://developer.mozilla.org/en-US/docs/Web/API/URL) 🟢 + +Fully implemented. + +### [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) 🟢 + +Fully implemented. + +### [`WebAssembly`](https://nodejs.org/api/globals.html#webassembly) 🟢 + +Fully implemented. + +### [`WritableStream`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream) 🟢 + +Fully implemented. + +### [`WritableStreamDefaultController`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultController) 🟢 + +Fully implemented. + +### [`WritableStreamDefaultWriter`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter) 🟢 + +Fully implemented. + +<!-- {% table %} --- @@ -679,4 +1119,4 @@ The table below lists all globals implemented by Node.js and Bun's current compa - 🟢 - Fully implemented. -{% /table %} +{% /table %} --> |