毎日、Bun は 100% の Node.js API 互換性に近づいています。現在、Next.js、Express などの人気のあるフレームワークや、何百万もの Node.js 向けの npm パッケージが Bun で動作します。互換性を確保するために、Bun のリリース前に Node.js のテストスイートから何千ものテストを実行しています。
パッケージが Node.js で動作するが Bun で動作しない場合、それは Bun のバグと見なします。 イシューを開いて いただければ修正します。
このページは、Bun の最新バージョンの互換性ステータスを反映するために定期的に更新されます。以下の情報は、Bun の Node.js v23 との互換性を反映しています。
組み込み Node.js モジュール
node:assert
🟢 完全実装。
node:buffer
🟢 完全実装。
node:console
🟢 完全実装。
node:dgram
🟢 完全実装。Node.js のテストスイートの 90% 以上がパスします。
node:diagnostics_channel
🟢 完全実装。
node:dns
🟢 完全実装。Node.js のテストスイートの 90% 以上がパスします。
node:events
🟢 完全実装。Node.js のテストスイートの 100% がパスします。EventEmitterAsyncResource は内部で AsyncResource を使用します。
node:fs
🟢 完全実装。Node.js のテストスイートの 92% がパスします。
node:http
🟢 完全実装。現在、送信クライアントリクエスト本文はストリーミングではなくバッファリングされています。
node:https
🟢 API は実装されていますが、Agent はまだ常に使用されるわけではありません。
node:os
🟢 完全実装。Node.js のテストスイートの 100% がパスします。
node:path
🟢 完全実装。Node.js のテストスイートの 100% がパスします。
node:punycode
🟢 完全実装。Node.js のテストスイートの 100% がパスします。Node.js によって非推奨。
node:querystring
🟢 完全実装。Node.js のテストスイートの 100% がパスします。
node:readline
🟢 完全実装。
node:stream
🟢 完全実装。
node:string_decoder
🟢 完全実装。Node.js のテストスイートの 100% がパスします。
node:timers
🟢 代わりにグローバルの setTimeout などの使用を推奨。
node:tty
🟢 完全実装。
node:url
🟢 完全実装。
node:zlib
🟢 完全実装。Node.js のテストスイートの 98% がパスします。
node:async_hooks
🟡 AsyncLocalStorage と AsyncResource が実装されています。v8 プロミスフックは呼び出されず、その使用は 強く非推奨 されています。
node:child_process
🟡 proc.gid proc.uid が不足しています。Stream クラスがエクスポートされていません。ソケットハンドルを送信できません。Node.js ↔ Bun IPC は JSON シリアライゼーションで使用できます。
node:cluster
🟡 ハンドルとファイルディスクリプタはワーカー間で渡せないため、プロセス間で HTTP リクエストの負荷分散を行うことは現時点では Linux でのみサポートされています(SO_REUSEPORT を介して)。それ以外の場合は実装されていますが、実戦テストはされていません。
node:crypto
🟡 secureHeapUsed setEngine setFips が不足しています。
node:domain
🟡 Domain active が不足しています。
node:http2
🟡 クライアントとサーバーが実装されています(gRPC のテストスイートの 95.25% がパスします)。options.allowHTTP1、options.enableConnectProtocol、ALTSVC 拡張機能、および http2stream.pushStream が不足しています。
node:module
🟡 syncBuiltinESMExports、Module#load() が不足しています。require.cache のオーバーライドは ESM と CJS モジュールでサポートされています。module._extensions、module._pathCache、module._cache は no-op です。module.register は実装されておらず、代わりに Bun.plugin の使用を推奨します。
node:net
🟢 完全実装。
node:perf_hooks
🟡 API は実装されていますが、Node.js のテストスイートはまだこのモジュールに対してパスしていません。
node:process
🟡 process グローバルを参照。
node:sys
🟡 node:util を参照。
node:tls
🟡 tls.createSecurePair が不足しています。
node:util
🟡 getCallSite getCallSites getSystemErrorMap getSystemErrorMessage transferableAbortSignal transferableAbortController が不足しています。
node:v8
🟡 writeHeapSnapshot と getHeapSnapshot が実装されています。serialize と deserialize は V8 の代わりに JavaScriptCore のワイヤ形式を使用します。他のメソッドは実装されていません。プロファイリングの場合は、代わりに bun:jsc を使用してください。
node:vm
🟡 コア機能と ES モジュールが実装されています。vm.Script、vm.createContext、vm.runInContext、vm.runInNewContext、vm.runInThisContext、vm.compileFunction、vm.isContext、vm.Module、vm.SourceTextModule、vm.SyntheticModule、および importModuleDynamically サポートを含みます。timeout や breakOnSigint などのオプションは完全にサポートされています。vm.measureMemory と一部の cachedData 機能が不足しています。
node:wasi
🟡 一部実装。
node:worker_threads
🟡 Worker は以下のオプションをサポートしていません:stdin stdout stderr trackedUnmanagedFds resourceLimits。markAsUntransferable moveMessagePortToContext が不足しています。
node:inspector
🔴 未実装。
node:repl
🔴 未実装。
node:sqlite
🔴 未実装。
node:test
🟡 一部実装。モック、スナップショット、タイマーが不足しています。代わりに bun:test を使用してください。
node:trace_events
🔴 未実装。
Node.js グローバル
以下の表は、Node.js によって実装されているすべてのグローバルと、Bun の現在の互換性ステータスをリストしています。
AbortController
🟢 完全実装。
AbortSignal
🟢 完全実装。
Blob
🟢 完全実装。
Buffer
🟢 完全実装。
ByteLengthQueuingStrategy
🟢 完全実装。
__dirname
🟢 完全実装。
__filename
🟢 完全実装。
atob()
🟢 完全実装。
Atomics
🟢 完全実装。
BroadcastChannel
🟢 完全実装。
btoa()
🟢 完全実装。
clearImmediate()
🟢 完全実装。
clearInterval()
🟢 完全実装。
clearTimeout()
🟢 完全実装。
CompressionStream
🟢 完全実装。
console
🟢 完全実装。
CountQueuingStrategy
🟢 完全実装。
Crypto
🟢 完全実装。
SubtleCrypto (crypto)
🟢 完全実装。
CryptoKey
🟢 完全実装。
CustomEvent
🟢 完全実装。
DecompressionStream
🟢 完全実装。
Event
🟢 完全実装。
EventTarget
🟢 完全実装。
exports
🟢 完全実装。
fetch
🟢 完全実装。
FormData
🟢 完全実装。
global
🟢 実装済み。これはグローバルネームスペース内のすべてのオブジェクトを含むオブジェクトです。その内容は追加のプレフィックスなしで利用可能なため、global.__dirname ではなく __dirname のように、直接参照されることはめったにありません。
globalThis
🟢 global へのエイリアス。
Headers
🟢 完全実装。
MessageChannel
🟢 完全実装。
MessageEvent
🟢 完全実装。
MessagePort
🟢 完全実装。
module
🟢 完全実装。
PerformanceEntry
🟢 完全実装。
PerformanceMark
🟢 完全実装。
PerformanceMeasure
🟢 完全実装。
PerformanceObserver
🟢 完全実装。
PerformanceObserverEntryList
🟢 完全実装。
PerformanceResourceTiming
🟢 完全実装。
performance
🟢 完全実装。
process
🟡 ほぼ実装済み。process.binding(一部のパッケージが依存する内部 Node.js バインディング)は一部実装されています。process.title は現在 macOS と Linux で no-op です。getActiveResourcesInfo setActiveResourcesInfo、getActiveResources、setSourceMapsEnabled はスタブです。process.loadEnvFile や process.getBuiltinModule などの新しい API はまだ実装されていません。
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
🟢 完全実装。
URLSearchParams
🟢 完全実装。
WebAssembly
🟢 完全実装。
WritableStream
🟢 完全実装。
WritableStreamDefaultController
🟢 完全実装。
WritableStreamDefaultWriter
🟢 完全実装。