Bun 旨在实现完整的 Node.js API 兼容性。大多数针对 Node.js
环境的 npm
包都可以直接与 Bun 一起使用;最直接的了解方法就是尝试一下。
此页面会定期更新,以反映最新版本 Bun 的兼容性状态。以下信息反映了 Bun 与 Node.js v20 的兼容性。如果您在使用特定包时遇到任何错误,请 提交问题。提交兼容性错误问题有助于我们确定下一步的工作重点。
内置模块
node:assert
🟢 完全实现。
node:async_hooks
🟡 仅实现了 AsyncLocalStorage
和 AsyncResource
。AsyncResource
缺少 bind
。
node:buffer
🟢 完全实现。
node:child_process
🟡 缺少 Stream
stdio、proc.gid
proc.uid
。IPC 无法发送套接字句柄,并且仅适用于其他 bun
进程。
node:cluster
🔴 未实现。
node:console
🟢 完全实现。
node:crypto
🟡 缺少 Certificate
ECDH
X509Certificate
checkPrime
checkPrimeSync
diffieHellman
generatePrime
generatePrimeSync
getCipherInfo
getFips
hkdf
hkdfSync
secureHeapUsed
setEngine
setFips
某些方法尚未优化。
node:dgram
🟡 缺少 setBroadcast
setTTL
setMulticastTTL
setMulticastLoopback
setMulticastInterface
addMembership
dropMembership
addSourceSpecificMembership
dropSourceSpecificMembership
node:diagnostics_channel
🟢 完全实现。
node:dns
🟡 缺少 cancel
setServers
getDefaultResultOrder
node:domain
🟡 缺少 Domain
active
node:events
🟡 缺少 addAbortListener
events.getMaxListeners
node:fs
🟡 缺少 statfs
statfsSync
, opendirSync
。Dir
已部分实现。
node:http
🟢 完全实现。
node:http2
🟡 支持客户端,但不支持服务器。
node:https
🟢 完全实现。
node:inspector
🔴 未实现。
node:module
🟡 缺少 runMain
syncBuiltinESMExports
, Module#load()
。尝试覆盖或修补模块缓存将失败。
node:net
🟡 缺少 BlockList
SocketAddress
Stream
node:os
🟢 完全实现。
node:path
🟢 完全实现。
node:perf_hooks
🟡 缺少 createHistogram
monitorEventLoopDelay
。建议使用全局 performance
代替 perf_hooks.performance
。
node:process
🟡 请参阅 process
全局。
node:punycode
🟢 已完全实现。Node.js 已弃用。
node:querystring
🟢 完全实现。
node:readline
🟢 完全实现。
node:repl
🔴 未实现。
node:stream
🟡 缺少 getDefaultHighWaterMark
setDefaultHighWaterMark
toWeb
node:string_decoder
🟢 完全实现。
node:sys
🟡 请参阅 node:util
。
node:test
🔴 未实现。请改用 bun:test
。
node:timers
🟢 建议改用全局 setTimeout
等。
node:tls
🟡 缺少 tls.createSecurePair
。
node:trace_events
🔴 未实现。
node:tty
🟢 完全实现。
node:url
🟢 完全实现。
node:util
🟡 缺少 MIMEParams
MIMEType
aborted
debug
getSystemErrorMap
getSystemErrorName
transferableAbortController
transferableAbortSignal
stripVTControlCharacters
node:v8
🔴 serialize
和 deserialize
使用 JavaScriptCore 的线格式,而不是 V8 的。否则,未实现。对于性能分析,请使用 bun:jsc
。
node:vm
🟡 核心功能可用,但未实现实验性 VM ES 模块,包括 vm.Module
、vm.SourceTextModule
、vm.SyntheticModule
、importModuleDynamically
和 vm.measureMemory
。尚未实现 timeout
、breakOnSigint
、cachedData
等选项。上下文化选项的 this
值有一个错误,即没有正确的原型。
node:wasi
🟡 部分实现。
node:worker_threads
🟡 Worker
不支持以下选项:eval
stdin
stdout
stderr
trackedUnmanagedFds
resourceLimits
。缺少 markAsUntransferable
moveMessagePortToContext
getHeapSnapshot
。
node:zlib
🟡 缺少 BrotliCompress
BrotliDecompress
brotliCompressSync
brotliDecompress
brotliDecompressSync
createBrotliCompress
createBrotliDecompress
。未优化。
全局变量
下表列出了 Node.js 和 Bun 当前兼容性状态实现的所有全局变量。
AbortController
🟢 完全实现。
AbortSignal
🟢 完全实现。
Blob
🟢 完全实现。
Buffer
🟡 base64
和 base64url
编码的实现不完整。
ByteLengthQueuingStrategy
🟢 完全实现。
__dirname
🟢 完全实现。
__filename
🟢 完全实现。
atob()
🟢 完全实现。
BroadcastChannel
🟢 完全实现。
btoa()
🟢 完全实现。
clearImmediate()
🟢 完全实现。
clearInterval()
🟢 完全实现。
clearTimeout()
🟢 完全实现。
CompressionStream
🔴 未实现。
console
🟢 完全实现。
CountQueuingStrategy
🟢 完全实现。
Crypto
🟢 完全实现。
SubtleCrypto (crypto)
🟢 完全实现。
CryptoKey
🟢 完全实现。
CustomEvent
🟢 完全实现。
DecompressionStream
🔴 未实现。
Event
🟢 完全实现。
EventTarget
🟢 完全实现。
exports
🟢 完全实现。
fetch
🟢 完全实现。
FormData
🟢 完全实现。
global
🟢 已实现。这是一个包含全局命名空间中所有对象的的对象。它很少被直接引用,因为其内容可以在没有附加前缀的情况下使用,例如 __dirname
而不是 global.__dirname
。
globalThis
🟢 global
的别名。
Headers
🟢 完全实现。
MessageChannel
🟢 完全实现。
MessageEvent
🟢 完全实现。
MessagePort
🟢 完全实现。
module
🟢 完全实现。
PerformanceEntry
🟢 完全实现。
PerformanceMark
🟢 完全实现。
PerformanceMeasure
🟢 完全实现。
PerformanceObserver
🟢 完全实现。
PerformanceObserverEntryList
🟢 完全实现。
PerformanceResourceTiming
🔴 未实现。
performance
🟢 完全实现。
process
🟡 缺少 domain
hasUncaughtExceptionCaptureCallback
initgroups
resourceUsage
setUncaughtExceptionCaptureCallback
setegid
seteuid
setgid
setgroups
setuid
allowedNodeEnvironmentFlags
getActiveResourcesInfo
setActiveResourcesInfo
moduleLoadList
setSourceMapsEnabled
channel
。process.binding
已部分实现。
queueMicrotask()
🟢 完全实现。
ReadableByteStreamController
🟢 完全实现。
ReadableStream
🟢 完全实现。
ReadableStreamBYOBReader
🟢 完全实现。
ReadableStreamBYOBRequest
🟢 完全实现。
ReadableStreamDefaultController
🟢 完全实现。
ReadableStreamDefaultReader
🟢 完全实现。
require()
🟢 完全实现,包括 require.main
、require.cache
、require.resolve
Response
🟢 完全实现。
Request
🟢 完全实现。
setImmediate()
🟢 完全实现。
setInterval()
🟢 完全实现。
setTimeout()
🟢 完全实现。
structuredClone()
🟢 完全实现。
SubtleCrypto
🟢 完全实现。
DOMException
🟢 完全实现。
TextDecoder
🟢 完全实现。
TextDecoderStream
🔴 未实现。
TextEncoder
🟢 完全实现。
TextEncoderStream
🔴 未实现。
TransformStream
🟢 完全实现。
TransformStreamDefaultController
🟢 完全实现。
URL
🟡 URL.createObjectURL
缺失。请参阅 问题 #3925
URLSearchParams
🟢 完全实现。
WebAssembly
🟢 完全实现。
WritableStream
🟢 完全实现。
WritableStreamDefaultController
🟢 完全实现。
WritableStreamDefaultWriter
🟢 完全实现。