Skip to content

매일 Bun 은 100% Node.js API 호환성에 더 가까워지고 있습니다. 오늘날 Next.js, Express 와 같은 인기 있는 프레임워크와 수백만 개의 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 에서 deprecated.

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 promise hook 은 호출되지 않으며 사용이 강력히 권장되지 않습니다.

node:child_process ​

🟡 proc.gid, proc.uid 누락. Stream 클래스 내보내지지 않음. IPC 는 소켓 핸들을 보낼 수 없습니다. Node.js ↔ Bun IPC 는 JSON 직렬화로 사용 가능합니다.

node:cluster ​

🟡 핸들과 파일 디스크립터는 워커 간에 전달할 수 없으므로 현재로서는 Linux 에서만 프로세스 간 HTTP 요청 부하 분산이 지원됩니다 (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 ​

🟡 부분적으로 구현됨. mocks, snapshots, timers 누락. 대신 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 ​

🟢 구현됨. 이는 전역 네임스페이스의 모든 객체를 포함하는 객체입니다. contents 는 추가 접두사 없이 사용 가능하므로 직접 참조하는 경우는 드뭅니다 (예: 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 ​

🟢 완전히 구현됨.

Bun by www.bunjs.com.cn 편집