6.0.2
emscripten-core/emscripten6.0.2Jul 1, 2026by emscripten-bot
Upgrading?
Release notes summary
This release improves memory management flexibility with enhanced `GROWABLE_ARRAYBUFFERS` options and introduces a new Node.js networking feature. It also removes default symbols from the module API to improve security and clarity.
Key Highlights
- New `-sNODERAWSOCKETS` setting for Node.js TCP/UDP sockets without proxy processes
- `GROWABLE_ARRAYBUFFERS` now supports `=1` (auto-detect) and `=2` (forced) modes
- Removed 14 symbols from default `INCOMING_MODULE_JS_API` (requires explicit flag)
Breaking Changes
- The following symbols are no longer included in `INCOMING_MODULE_JS_API` by default: GL_MAX_TEXTURE_IMAGE_UNITS, SDL_canPlayWithWebAudio, SDL_numSimultaneouslyQueuedBuffers, freePreloadedMediaOnUse, preinitializedWebGLContext, keyboardListeningElement, doNotCaptureKeyboard, extraStackTrace, preloadPlugins, postMainLoop, preMainLoop, forcedAspectRatio, mainScriptUrlOrBlob, onFullScreen, INITIAL_MEMORY, wasmMemory, wasmBinary. Users must explicitly add them to `-sINCOMING_MODULE_JS_API`.
New Features
- Node.js TCP/UDP socket support via `-sNODERAWSOCKETS`
- Enhanced `GROWABLE_ARRAYBUFFERS` handling with modes =1 and =2
Full Release Notes
## What's Changed - The `GROWABLE_ARRAYBUFFERS` setting now supports both `=1` (auto-detect and use the feature) and `=2` (unconditionally use the feature, avoiding the overhead in multi-threaded builds). It now defaults to `=1`, meaning the feature will be used when available. Note that this only affects programs that are built with `ALLOW_MEMORY_GROWTH`, which is not enabled by default. (#27096, #27212) - New `-sNODERAWSOCKETS` setting that backs the POSIX sockets API with real TCP (`node:net`) and UDP (`node:dgram`) sockets on Node.js, with no `ws`, proxy process, or pthreads required. Supports incoming and outgoing TCP, UDP, IPv6, and `-pthread` with `PROXY_TO_PTHREAD`. Uses the public node APIs where available, falling back to `tcp_wrap`/`udp_wrap` on older Node.js. (#27080) - The following symbols are no longer included in `INCOMING_MODULE_JS_API` by default: - GL_MAX_TEXTURE_IMAGE_UNITS - SDL_canPlayWithWebAudio - SDL_numSimultaneouslyQueuedBuffers - freePreloadedMediaOnUse - preinitializedWebGLContext - keyboardListeningElement - doNotCaptureKeyboard - extraStackTrace - preloadPlugins - postMainLoop - preMainLoop - forcedAspectRatio - mainScriptUrlOrBlob - onFullScreen - INITIAL_MEMORY - wasmMemory - wasmBinary Anybody using these will see a clear error in their debug builds signaling that they now need to be explicitly added to `-sINCOMING_MODULE_JS_API`. ## Contributors Thanks to the following contributors: @sbc100 (36) @kleisauke (5) @dschuff (3) @guybedford (3) @Diyou (1) @fanchenkong1 (1) @stas-badzi (1) @UnknownHacker1 (1) ## New Contributors * @UnknownHacker1 made their first contribution in https://github.com/emscripten-core/emscripten/pull/27163 * @stas-badzi made their first contribution in https://github.com/emscripten-core/emscripten/pull/27192 **Full Changelog**: https://github.com/emscripten-core/emscripten/compare/6.0.1...6.0.2
Related Repositories
ggml-org/llama.cpp★ 132,131
LLM inference in C/C++
LadybirdBrowser/ladybird★ 66,637
Truly independent web browser
ClickHouse/ClickHouse★ 50,563
ClickHouse® is a real-time analytics database management system
LizardByte/Sunshine★ 42,550
Self-hosted game stream host for Moonlight.
deskflow/deskflow★ 30,072
Share a single keyboard and mouse between multiple computers.