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

🟡 AsyncLocalStorageAsyncResource 가 구현되었습니다. 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

🟡 writeHeapSnapshotgetHeapSnapshot 가 구현되었습니다. serializedeserialize 는 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.SyntheticModuleimportModuleDynamically 지원 포함. timeoutbreakOnSigint 옵션도 완전히 지원됩니다. 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 편집