Overview
WinterTC (TC55) is an Ecma International Technical Committee working on a "Minimum Common Web API" standard — a baseline set of Web Platform APIs that all server-side JS runtimes (Deno, Bun, Cloudflare Workers, etc.) should implement for interoperability.
The TC55 spec (December 2025) defines the APIs that a conforming runtime must expose. This issue tracks the gap between what boa_runtime currently implements and what TC55 requires.
Implemented in boa_runtime
Missing TC55 APIs
DOM
HTML
URL
File API
XHR
Encoding
Compression
Streams
Web Crypto
Performance
WebIDL
WebAssembly
Notes
Event / EventTarget should be implemented first — AbortController, MessageChannel, streams and others all depend on it
AbortSignal currently has a simplified event listener implementation without a full EventTarget — implementing Event/EventTarget will make it fully spec-compliant
WebAssembly likely requires separate discussion given its integration complexity( not finalised)
Ref: https://min-common-api.proposal.wintertc.org/
Overview
WinterTC (TC55) is an Ecma International Technical Committee working on a "Minimum Common Web API" standard — a baseline set of Web Platform APIs that all server-side JS runtimes (Deno, Bun, Cloudflare Workers, etc.) should implement for interoperability.
The TC55 spec (December 2025) defines the APIs that a conforming runtime must expose. This issue tracks the gap between what
boa_runtimecurrently implements and what TC55 requires.Implemented in
boa_runtimeconsole(optional extension)fetch/Headers/Request/Response(feature-gated, requires customFetcherimpl)TextEncoder/TextDecoder(registered by default)setTimeout/setInterval/clearTimeout/clearInterval(registered by default)structuredClone(registered by default)queueMicrotask(registered by default)URL(feature-gated —searchParams/createObjectURL/revokeObjectURLunimplemented)postMessage(optional extension, requires customMessageSenderimpl)AbortController/AbortSignalatob()/btoa()Missing TC55 APIs
DOM
Event/EventTargetHTML
CustomEvent/ErrorEvent/PromiseRejectionEventMessageChannel/MessagePort/MessageEventreportError()navigator.userAgentonerror/onunhandledrejection/onrejectionhandledselfURL
URLSearchParamsURLPatternFile API
Blob/FileXHR
FormDataEncoding
TextDecoderStream/TextEncoderStreamCompression
CompressionStream/DecompressionStreamStreams
ReadableStream+ReadableStreamDefaultController+ReadableStreamDefaultReaderReadableByteStreamController/ReadableStreamBYOBReader/ReadableStreamBYOBRequestWritableStream+WritableStreamDefaultController+WritableStreamDefaultWriterTransformStream+TransformStreamDefaultControllerByteLengthQueuingStrategy/CountQueuingStrategyWeb Crypto
Crypto/SubtleCrypto/CryptoKeyglobalThis.cryptoPerformance
Performance/globalThis.performanceWebIDL
DOMExceptionWebAssembly
WebAssembly.*interfaces and methodsNotes
Event/EventTargetshould be implemented first —AbortController,MessageChannel, streams and others all depend on itAbortSignalcurrently has a simplified event listener implementation without a fullEventTarget— implementingEvent/EventTargetwill make it fully spec-compliantWebAssemblylikely requires separate discussion given its integration complexity( not finalised)Ref: https://min-common-api.proposal.wintertc.org/