كل يوم، يقترب Bun من توافق 100% مع واجهات برمجة تطبيقات Node.js. اليوم، أطر العمل الشائعة مثل Next.js و Express وملايين حزم npm المخصصة لـ Node تعمل فقط مع Bun. لضمان التوافق، نشغل آلاف الاختبارات من مجموعة اختبارات Node.js قبل كل إصدار من Bun.
إذا كانت الحزمة تعمل في Node.js ولكنها لا تعمل في Bun، نعتبرها خطأ في Bun. يرجى فتح قضية وسنقوم بإصلاحها.
تُحدّث هذه الصفحة بانتظام لتعكس حالة توافق أحدث إصدار من Bun. تعكس المعلومات أدناه توافق Bun مع Node.js v23.
وحدات Node.js المدمجة
node:assert
🟢 مطبقة بالكامل.
node:buffer
🟢 مطبقة بالكامل.
node:console
🟢 مطبقة بالكامل.
node:dgram
🟢 مطبقة بالكامل. > 90% من مجموعة اختبارات Node.js تمر.
node:diagnostics_channel
🟢 مطبقة بالكامل.
node:dns
🟢 مطبقة بالكامل. > 90% من مجموعة اختبارات Node.js تمر.
node:events
🟢 مطبقة بالكامل. 100% من مجموعة اختبارات Node.js تمر. تستخدم EventEmitterAsyncResource AsyncResource في الداخل.
node:fs
🟢 مطبقة بالكامل. 92% من مجموعة اختبارات Node.js تمر.
node:http
🟢 مطبقة بالكامل. جسم طلب العميل الصادر يتم تخزينه مؤقتًا بدلاً من بثه حاليًا.
node:https
🟢 واجهات برمجة التطبيقات مطبقة، لكن Agent لا يُستخدم دائمًا بعد.
node:os
🟢 مطبقة بالكامل. 100% من مجموعة اختبارات Node.js تمر.
node:path
🟢 مطبقة بالكامل. 100% من مجموعة اختبارات Node.js تمر.
node:punycode
🟢 مطبقة بالكامل. 100% من مجموعة اختبارات Node.js تمر، مهملة من قبل Node.js.
node:querystring
🟢 مطبقة بالكامل. 100% من مجموعة اختبارات Node.js تمر.
node:readline
🟢 مطبقة بالكامل.
node:stream
🟢 مطبقة بالكامل.
node:string_decoder
🟢 مطبقة بالكامل. 100% من مجموعة اختبارات Node.js تمر.
node:timers
🟢 يُوصى باستخدام setTimeout العامة، إلخ. بدلاً من ذلك.
node:tty
🟢 مطبقة بالكامل.
node:url
🟢 مطبقة بالكامل.
node:zlib
🟢 مطبقة بالكامل. 98% من مجموعة اختبارات Node.js تمر.
node:async_hooks
🟡 AsyncLocalStorage و AsyncResource مطبقة. لا يتم استدعاء خطافات وعد v8، واستخدامها مثبط بشدة.
node:child_process
🟡 ناقص proc.gid proc.uid. فئة Stream غير مصدرة. لا يمكن لـ IPC إرسال مقابض المقبس. يمكن استخدام IPC بين Node.js ↔ Bun مع تسلسل JSON.
node:cluster
🟡 لا يمكن تمرير المقابض وأوصاف الملفات بين العمال، مما يعني أن موازنة تحميل طلبات HTTP عبر العمليات مدعومة فقط في Linux في هذا الوقت (عبر SO_REUSEPORT). خلاف ذلك، مطبقة ولكن لم يتم اختبارها بشكل كافٍ.
node:crypto
🟡 ناقص secureHeapUsed setEngine setFips
node:domain
🟡 ناقص Domain active
node:http2
🟡 العميل والخادم مطبقان (95.25% من مجموعة اختبارات gRPC تمر). ناقص options.allowHTTP1، options.enableConnectProtocol، امتداد ALTSVC، و http2stream.pushStream.
node:module
🟡 ناقص syncBuiltinESMExports، Module#load(). دعم تجاوز require.cache لوحدات ESM و CJS. module._extensions، module._pathCache، module._cache هي no-ops. module.register غير مطبق ونوصي باستخدام Bun.plugin في هذه الأثناء.
node:net
🟢 مطبقة بالكامل.
node:perf_hooks
🟡 واجهات برمجة التطبيقات مطبقة، لكن مجموعة اختبارات 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 تستخدمان تنسيق سلك JSC بدلاً من V8. الطرق الأخرى غير مطبقة. للتنميط، استخدم 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
🟢 مطبق. هذا كائن يحتوي على جميع الكائنات في مساحة الاسم العامة. نادرًا ما يُشار إليه مباشرة، حيث تتوفر محتوياته بدون بادئة إضافية، مثل __dirname بدلاً من global.__dirname.
globalThis
🟢 اسم مستعار لـ global.
Headers
🟢 مطبق بالكامل.
MessageChannel
🟢 مطبق بالكامل.
MessageEvent
🟢 مطبق بالكامل.
MessagePort
🟢 مطبق بالكامل.
module
🟢 مطبق بالكامل.
PerformanceEntry
🟢 مطبق بالكامل.
PerformanceMark
🟢 مطبق بالكامل.
PerformanceMeasure
🟢 مطبق بالكامل.
PerformanceObserver
🟢 مطبق بالكامل.
PerformanceObserverEntryList
🟢 مطبق بالكامل.
PerformanceResourceTiming
🟢 مطبق بالكامل.
performance
🟢 مطبق بالكامل.
process
🟡 مطبق إلى حد كبير. process.binding (ربط Node.js الداخلي الذي تعتمد عليه بعض الحزم) مطبق جزئيًا. process.title حاليًا no-op على macOS و Linux. getActiveResourcesInfo setActiveResourcesInfo، getActiveResources و setSourceMapsEnabled هي stubs. واجهات برمجة التطبيقات الأحدث مثل process.loadEnvFile و process.getBuiltinModule غير مطبقة بعد.
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
🟢 مطبق بالكامل.