Skip to content

Jeden Tag kommt Bun der 100%igen Node.js-API-Kompatibilität näher. Heute funktionieren beliebte Frameworks wie Next.js, Express und Millionen von npm-Paketen, die für Node.js entwickelt wurden, einfach mit Bun. Um die Kompatibilität sicherzustellen, führen wir vor jeder Bun-Version Tausende von Tests aus der Node.js-Testsuite durch.

Wenn ein Paket in Node.js funktioniert, aber nicht in Bun, betrachten wir dies als einen Fehler in Bun. Bitte öffnen Sie ein Issue und wir werden es beheben.

Diese Seite wird regelmäßig aktualisiert, um den Kompatibilitätsstatus der neuesten Version von Bun widerzuspiegeln. Die folgenden Informationen spiegeln Buns Kompatibilität mit Node.js v23 wider.

Eingebaute Node.js-Module

node:assert

🟢 Vollständig implementiert.

node:buffer

🟢 Vollständig implementiert.

node:console

🟢 Vollständig implementiert.

node:dgram

🟢 Vollständig implementiert. > 90% der Node.js-Testsuite bestehen.

node:diagnostics_channel

🟢 Vollständig implementiert.

node:dns

🟢 Vollständig implementiert. > 90% der Node.js-Testsuite bestehen.

node:events

🟢 Vollständig implementiert. 100% der Node.js-Testsuite bestehen. EventEmitterAsyncResource verwendet intern AsyncResource.

node:fs

🟢 Vollständig implementiert. 92% der Node.js-Testsuite bestehen.

node:http

🟢 Vollständig implementiert. Der ausgehende Client-Request-Body wird derzeit gepuffert statt gestreamt.

node:https

🟢 APIs sind implementiert, aber Agent wird noch nicht immer verwendet.

node:os

🟢 Vollständig implementiert. 100% der Node.js-Testsuite bestehen.

node:path

🟢 Vollständig implementiert. 100% der Node.js-Testsuite bestehen.

node:punycode

🟢 Vollständig implementiert. 100% der Node.js-Testsuite bestehen, von Node.js veraltet.

node:querystring

🟢 Vollständig implementiert. 100% der Node.js-Testsuite bestehen.

node:readline

🟢 Vollständig implementiert.

node:stream

🟢 Vollständig implementiert.

node:string_decoder

🟢 Vollständig implementiert. 100% der Node.js-Testsuite bestehen.

node:timers

🟢 Es wird empfohlen, stattdessen das globale setTimeout usw. zu verwenden.

node:tty

🟢 Vollständig implementiert.

node:url

🟢 Vollständig implementiert.

node:zlib

🟢 Vollständig implementiert. 98% der Node.js-Testsuite bestehen.

node:async_hooks

🟡 AsyncLocalStorage und AsyncResource sind implementiert. v8 Promise-Hooks werden nicht aufgerufen, und ihre Verwendung wird dringend abgeraten.

node:child_process

🟡 Fehlend proc.gid proc.uid. Stream-Klasse nicht exportiert. IPC kann keine Socket-Handles senden. Node.js ↔ Bun IPC kann mit JSON-Serialisierung verwendet werden.

node:cluster

🟡 Handles und Dateideskriptoren können nicht zwischen Workern übergeben werden, was bedeutet, dass das Lastenausgleich von HTTP-Anfragen über Prozesse hinweg derzeit nur unter Linux unterstützt wird (über SO_REUSEPORT). Ansonsten implementiert, aber nicht kampferprobt.

node:crypto

🟡 Fehlend secureHeapUsed setEngine setFips

node:domain

🟡 Fehlend Domain active

node:http2

🟡 Client & Server sind implementiert (95,25% der gRPC-Testsuite bestehen). Fehlend options.allowHTTP1, options.enableConnectProtocol, ALTSVC-Erweiterung und http2stream.pushStream.

node:module

🟡 Fehlend syncBuiltinESMExports, Module#load(). Das Überschreiben von require.cache wird für ESM- und CJS-Module unterstützt. module._extensions, module._pathCache, module._cache sind No-Ops. module.register ist nicht implementiert und wir empfehlen, vorerst ein Bun.plugin zu verwenden.

node:net

🟢 Vollständig implementiert.

node:perf_hooks

🟡 APIs sind implementiert, aber die Node.js-Testsuite besteht für dieses Modul noch nicht.

node:process

🟡 Siehe process Global.

node:sys

🟡 Siehe node:util.

node:tls

🟡 Fehlend tls.createSecurePair.

node:util

🟡 Fehlend getCallSite getCallSites getSystemErrorMap getSystemErrorMessage transferableAbortSignal transferableAbortController

node:v8

🟡 writeHeapSnapshot und getHeapSnapshot sind implementiert. serialize und deserialize verwenden das JavaScriptCore-Wireformat anstelle von V8. Andere Methoden sind nicht implementiert. Für Profiling verwenden Sie stattdessen bun:jsc.

node:vm

🟡 Kernfunktionalität und ES-Module sind implementiert, einschließlich vm.Script, vm.createContext, vm.runInContext, vm.runInNewContext, vm.runInThisContext, vm.compileFunction, vm.isContext, vm.Module, vm.SourceTextModule, vm.SyntheticModule und importModuleDynamically-Unterstützung. Optionen wie timeout und breakOnSigint werden vollständig unterstützt. Fehlend vm.measureMemory und einige cachedData-Funktionen.

node:wasi

🟡 Teilweise implementiert.

node:worker_threads

🟡 Worker unterstützt die folgenden Optionen nicht: stdin stdout stderr trackedUnmanagedFds resourceLimits. Fehlend markAsUntransferable moveMessagePortToContext.

node:inspector

🔴 Nicht implementiert.

node:repl

🔴 Nicht implementiert.

node:sqlite

🔴 Nicht implementiert.

node:test

🟡 Teilweise implementiert. Fehlend Mocks, Snapshots, Timer. Verwenden Sie stattdessen bun:test.

node:trace_events

🔴 Nicht implementiert.

Node.js-Globale Objekte

Die folgende Tabelle listet alle von Node.js implementierten globalen Objekte und Buns aktuellen Kompatibilitätsstatus auf.

AbortController

🟢 Vollständig implementiert.

AbortSignal

🟢 Vollständig implementiert.

Blob

🟢 Vollständig implementiert.

Buffer

🟢 Vollständig implementiert.

ByteLengthQueuingStrategy

🟢 Vollständig implementiert.

__dirname

🟢 Vollständig implementiert.

__filename

🟢 Vollständig implementiert.

atob()

🟢 Vollständig implementiert.

Atomics

🟢 Vollständig implementiert.

BroadcastChannel

🟢 Vollständig implementiert.

btoa()

🟢 Vollständig implementiert.

clearImmediate()

🟢 Vollständig implementiert.

clearInterval()

🟢 Vollständig implementiert.

clearTimeout()

🟢 Vollständig implementiert.

CompressionStream

🟢 Vollständig implementiert.

console

🟢 Vollständig implementiert.

CountQueuingStrategy

🟢 Vollständig implementiert.

Crypto

🟢 Vollständig implementiert.

SubtleCrypto (crypto)

🟢 Vollständig implementiert.

CryptoKey

🟢 Vollständig implementiert.

CustomEvent

🟢 Vollständig implementiert.

DecompressionStream

🟢 Vollständig implementiert.

Event

🟢 Vollständig implementiert.

EventTarget

🟢 Vollständig implementiert.

exports

🟢 Vollständig implementiert.

fetch

🟢 Vollständig implementiert.

FormData

🟢 Vollständig implementiert.

global

🟢 Implementiert. Dies ist ein Objekt, das alle Objekte im globalen Namespace enthält. Es wird selten direkt referenziert, da sein Inhalt ohne zusätzliches Präfix verfügbar ist, z.B. __dirname statt global.__dirname.

globalThis

🟢 Alias für global.

Headers

🟢 Vollständig implementiert.

MessageChannel

🟢 Vollständig implementiert.

MessageEvent

🟢 Vollständig implementiert.

MessagePort

🟢 Vollständig implementiert.

module

🟢 Vollständig implementiert.

PerformanceEntry

🟢 Vollständig implementiert.

PerformanceMark

🟢 Vollständig implementiert.

PerformanceMeasure

🟢 Vollständig implementiert.

PerformanceObserver

🟢 Vollständig implementiert.

PerformanceObserverEntryList

🟢 Vollständig implementiert.

PerformanceResourceTiming

🟢 Vollständig implementiert.

performance

🟢 Vollständig implementiert.

process

🟡 Größtenteils implementiert. process.binding (interne Node.js-Bindungen, auf die sich einige Pakete verlassen) ist teilweise implementiert. process.title ist derzeit eine No-Op unter macOS & Linux. getActiveResourcesInfo setActiveResourcesInfo, getActiveResources und setSourceMapsEnabled sind Stubs. Neuere APIs wie process.loadEnvFile und process.getBuiltinModule sind noch nicht implementiert.

queueMicrotask()

🟢 Vollständig implementiert.

ReadableByteStreamController

🟢 Vollständig implementiert.

ReadableStream

🟢 Vollständig implementiert.

ReadableStreamBYOBReader

🟢 Vollständig implementiert.

ReadableStreamBYOBRequest

🟢 Vollständig implementiert.

ReadableStreamDefaultController

🟢 Vollständig implementiert.

ReadableStreamDefaultReader

🟢 Vollständig implementiert.

require()

🟢 Vollständig implementiert, einschließlich require.main, require.cache, require.resolve.

Response

🟢 Vollständig implementiert.

Request

🟢 Vollständig implementiert.

setImmediate()

🟢 Vollständig implementiert.

setInterval()

🟢 Vollständig implementiert.

setTimeout()

🟢 Vollständig implementiert.

structuredClone()

🟢 Vollständig implementiert.

SubtleCrypto

🟢 Vollständig implementiert.

DOMException

🟢 Vollständig implementiert.

TextDecoder

🟢 Vollständig implementiert.

TextDecoderStream

🟢 Vollständig implementiert.

TextEncoder

🟢 Vollständig implementiert.

TextEncoderStream

🟢 Vollständig implementiert.

TransformStream

🟢 Vollständig implementiert.

TransformStreamDefaultController

🟢 Vollständig implementiert.

URL

🟢 Vollständig implementiert.

URLSearchParams

🟢 Vollständig implementiert.

WebAssembly

🟢 Vollständig implementiert.

WritableStream

🟢 Vollständig implementiert.

WritableStreamDefaultController

🟢 Vollständig implementiert.

WritableStreamDefaultWriter

🟢 Vollständig implementiert.

Bun von www.bunjs.com.cn bearbeitet