Some Web APIs aren't relevant in the context of a server-first runtime like Bun, such as the DOM API or History API. Many others, though, are broadly useful outside of the browser context; when possible, Bun implements these Web-standard APIs instead of introducing new APIs.
The following Web APIs are partially or completely supported.
HTTP | fetch Response Request Headers AbortController AbortSignal |
URLs | URL URLSearchParams |
Web Workers | Worker self.postMessage structuredClone MessagePort MessageChannel BroadcastChannel . |
Streams | ReadableStream WritableStream TransformStream ByteLengthQueuingStrategy CountQueuingStrategy and associated classes |
Blob | Blob |
WebSockets | WebSocket |
Encoding and decoding | atob btoa TextEncoder TextDecoder |
JSON | JSON |
Timeouts | setTimeout clearTimeout |
Intervals | setInterval clearInterval |
Crypto | crypto SubtleCrypto CryptoKey |
Debugging | |
Microtasks | queueMicrotask |
Errors | reportError |
User interaction | alert confirm prompt (intended for interactive CLIs) |
Realms | ShadowRealm |
Events | EventTarget Event ErrorEvent CloseEvent MessageEvent |