Golem 1.5 features - Part 4: Node.js compatibility
Posted on April 14, 2026
Introduction
I am writing a series of short posts showcasing the new features of Golem 1.5, to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information!
Parts released so far:
- Part 1: Code-first routes
- Part 2: Webhooks
- Part 3: MCP
- Part 4: Node.js compatibility
- Part 5: Scala support
- Part 6: User-defined snapshotting
- Part 7: Configuration and Secrets
- Part 8: Template simplifications and automatic updates
- Part 9: Agent skills
- Part 10: WebSocket client
- Part 11: Bridge libraries
- Part 12: REPL
- Part 13: Per-agent configuration
- Part 14: OpenTelemetry
- Part 15: MoonBit
- Part 16: Quotas
- Part 17: Semantic retry policies
JS/TS support
The previous release introduced our new QuickJS based JavaScript engine and supported using TypeScript for writing Golem applications. The runtime itself and the Golem SDK already worked well, however not many of the third party libraries of the JS/TS ecosystem were compatible with our runtime. We have put a lot of effort into increasing our runtime's compatibility with both browser APIs and Node.js modules.
Previously supported
The runtime shipped with the last Golem release supported the following APIs:
- Good support for:
Console, HTTP (fetch),URL, Streams, Timeout functions, Encoding,Crypto - Very limited support for parts of
node:util,node:buffer,node:fs,node:path,node:processandnode:stream - base64-js, ieee754
The current state
During the development of Golem 1.5, we took Node.js's own test suite and tried to reach as high compatibility as possible with our runtime. Of course it cannot support it 100%, given the constraints of running on a different JS engine, in a single-threaded, sandboxed WASM environment. Still, we were able to implement a large part of Node.js's modules, tested some third party libraries extensively by hand and verified hundreds via automated coding agents.
The summary of what we have now:
- Web Platform APIs:
Console, HTTP (fetch),URL, Streams, Timers, Abort Controller, Encoding, Messaging, Events,Intl,Crypto(global), Structured Clone - Node modules:
node:assertnode:async_hooksnode:buffernode:constantsnode:cryptonode:diagnostics_channel(implemented through Golem's invocation context APIs)node:dgramnode:dnsnode:domainnode:eventsnode:fsnode:fs/promisesnode:httpnode:httpsnode:modulenode:netnode:osnode:pathnode:perf_hooksnode:processnode:punycodenode:querystringnode:readlinenode:sqlitenode:streamnode:string_decodernode:testnode:timersnode:trace_eventsnode:ttynode:urlnode:utilnode:vmnode:zlib
- Defined (to satisfy imports) but not implemented:
node:child_process(not possible in our current WASM runtime)node:clusternode:inspectornode:http2(not possible in our current WASM runtime)node:replnode:tlsnode:v8(not running on V8)node:worker_threads(not possible in our current WASM runtime)
More information
For more information you can take a look at the vendored Node.js test compatibility report and the automated library compatibility test report.
After Golem 1.5 is released, we are going to further increase the compatibility of this runtime; please report any compatibility issues, real-world problems are going to be taken as highest priority.