Emscripten
@emscripten.org
Emscripten 4.0.19 is out! 🎉
github.com/emscripten-c...
A major improvement for dynamic linking landed: the main module is built statically, without relocation overhead, making it smaller and faster. Only dynamic libraries now have relocation overhead. This makes dynamic linking much more useful 🚀
github.com/emscripten-c...
A major improvement for dynamic linking landed: the main module is built statically, without relocation overhead, making it smaller and faster. Only dynamic libraries now have relocation overhead. This makes dynamic linking much more useful 🚀
github.com
November 5, 2025 at 5:29 PM
Emscripten 4.0.19 is out! 🎉
github.com/emscripten-c...
A major improvement for dynamic linking landed: the main module is built statically, without relocation overhead, making it smaller and faster. Only dynamic libraries now have relocation overhead. This makes dynamic linking much more useful 🚀
github.com/emscripten-c...
A major improvement for dynamic linking landed: the main module is built statically, without relocation overhead, making it smaller and faster. Only dynamic libraries now have relocation overhead. This makes dynamic linking much more useful 🚀
click "Play OnLine" to play an Emscripten-emulated version
Green Beret C16, Arlasoft, 2025.
#Commodore #RetroGaming
arlagames.itch.io/green-beret-...
plus4world.powweb.com/software/Gre...
#Commodore #RetroGaming
arlagames.itch.io/green-beret-...
plus4world.powweb.com/software/Gre...
October 30, 2025 at 9:31 PM
click "Play OnLine" to play an Emscripten-emulated version
Emscripten 4.0.18 is out! 🚀
github.com/emscripten-c...
- Better support for cross-origin hosting
- WebGPU support is now via an external port, which is updated more frequently
github.com/emscripten-c...
- Better support for cross-origin hosting
- WebGPU support is now via an external port, which is updated more frequently
github.com
October 24, 2025 at 5:46 PM
Emscripten 4.0.18 is out! 🚀
github.com/emscripten-c...
- Better support for cross-origin hosting
- WebGPU support is now via an external port, which is updated more frequently
github.com/emscripten-c...
- Better support for cross-origin hosting
- WebGPU support is now via an external port, which is updated more frequently
Emscripten 4.0.16 is out!
github.com/emscripten-c...
Includes a bunch of work on modernization, dropping support for some older browsers, and moving embind towards (eventually) depending on C++17
github.com/emscripten-c...
Includes a bunch of work on modernization, dropping support for some older browsers, and moving embind towards (eventually) depending on C++17
github.com
October 7, 2025 at 8:14 PM
Emscripten 4.0.16 is out!
github.com/emscripten-c...
Includes a bunch of work on modernization, dropping support for some older browsers, and moving embind towards (eventually) depending on C++17
github.com/emscripten-c...
Includes a bunch of work on modernization, dropping support for some older browsers, and moving embind towards (eventually) depending on C++17
Reposted by Emscripten
Something I wanted in SDL3 for a long time just landed; you can make the SDL window just take up the whole browser window in Emscripten now.
So instead of this:
icculus.org/~icculus/ems...
You can do this:
icculus.org/~icculus/ems...
Feels more friendly to browser games.
So instead of this:
icculus.org/~icculus/ems...
You can do this:
icculus.org/~icculus/ems...
Feels more friendly to browser games.
Emscripten-Generated Code
icculus.org
October 2, 2025 at 5:04 PM
Something I wanted in SDL3 for a long time just landed; you can make the SDL window just take up the whole browser window in Emscripten now.
So instead of this:
icculus.org/~icculus/ems...
You can do this:
icculus.org/~icculus/ems...
Feels more friendly to browser games.
So instead of this:
icculus.org/~icculus/ems...
You can do this:
icculus.org/~icculus/ems...
Feels more friendly to browser games.
Useful tips for using Emscripten's MEMORY64 flag, which enables wasm64 (64-bit pointers in wasm), based on the experience of SQLite:
github.com/emscripten-c...
In wasm64 all pointers are BigInts and not Numbers, and JS treats those differently in various ways (reasonably, but it can be surprising)
github.com/emscripten-c...
In wasm64 all pointers are BigInts and not Numbers, and JS treats those differently in various ways (reasonably, but it can be surprising)
Tips Regarding 64-bit WASM Porting Pitfalls for JS · emscripten-core emscripten · Discussion #25341
What follows are random tips for folks who are interested in using Emscripten's -sMEMORY64=1 flag, based on recent work to get SQLite's JS pieces working with that. This post is primarily about fri...
github.com
September 22, 2025 at 11:29 PM
Useful tips for using Emscripten's MEMORY64 flag, which enables wasm64 (64-bit pointers in wasm), based on the experience of SQLite:
github.com/emscripten-c...
In wasm64 all pointers are BigInts and not Numbers, and JS treats those differently in various ways (reasonably, but it can be surprising)
github.com/emscripten-c...
In wasm64 all pointers are BigInts and not Numbers, and JS treats those differently in various ways (reasonably, but it can be surprising)
Emscripten 4.0.15 is out! 🚀
github.com/emscripten-c...
A long-requested change appears here: Source maps no longer force-enable other debug info (like the names section). This allows generation of source maps for a fully-optimized build (e.g. using it for stack traces from production)
github.com/emscripten-c...
A long-requested change appears here: Source maps no longer force-enable other debug info (like the names section). This allows generation of source maps for a fully-optimized build (e.g. using it for stack traces from production)
github.com
September 17, 2025 at 9:37 PM
Emscripten 4.0.15 is out! 🚀
github.com/emscripten-c...
A long-requested change appears here: Source maps no longer force-enable other debug info (like the names section). This allows generation of source maps for a fully-optimized build (e.g. using it for stack traces from production)
github.com/emscripten-c...
A long-requested change appears here: Source maps no longer force-enable other debug info (like the names section). This allows generation of source maps for a fully-optimized build (e.g. using it for stack traces from production)
Emscripten 4.0.14 is out! 🚀
github.com/emscripten-c...
As part of our efforts to simplify and shrink code size, there are some changes here that you might notice if you use internal APIs, see the changelog.
github.com/emscripten-c...
As part of our efforts to simplify and shrink code size, there are some changes here that you might notice if you use internal APIs, see the changelog.
github.com
September 3, 2025 at 4:15 PM
Emscripten 4.0.14 is out! 🚀
github.com/emscripten-c...
As part of our efforts to simplify and shrink code size, there are some changes here that you might notice if you use internal APIs, see the changelog.
github.com/emscripten-c...
As part of our efforts to simplify and shrink code size, there are some changes here that you might notice if you use internal APIs, see the changelog.
Emscripten 4.0.13 is out! 🚀
github.com/emscripten-c...
Some internal JS APIs (preload plugins) are being rewritten to use modern async style (if you maintain out-of-tree uses of those internal APIs, you may need changes).
Also the file packager now supports ES6 imports.
github.com/emscripten-c...
Some internal JS APIs (preload plugins) are being rewritten to use modern async style (if you maintain out-of-tree uses of those internal APIs, you may need changes).
Also the file packager now supports ES6 imports.
github.com
August 15, 2025 at 4:56 PM
Emscripten 4.0.13 is out! 🚀
github.com/emscripten-c...
Some internal JS APIs (preload plugins) are being rewritten to use modern async style (if you maintain out-of-tree uses of those internal APIs, you may need changes).
Also the file packager now supports ES6 imports.
github.com/emscripten-c...
Some internal JS APIs (preload plugins) are being rewritten to use modern async style (if you maintain out-of-tree uses of those internal APIs, you may need changes).
Also the file packager now supports ES6 imports.
Emscripten 4.0.12 is out! 🚀
github.com/emscripten-c...
Includes a few minor API changes (see changelog), like using 64-bit indexes in statfs (needed for large filesystems)
github.com/emscripten-c...
Includes a few minor API changes (see changelog), like using 64-bit indexes in statfs (needed for large filesystems)
github.com
August 1, 2025 at 6:22 PM
Emscripten 4.0.12 is out! 🚀
github.com/emscripten-c...
Includes a few minor API changes (see changelog), like using 64-bit indexes in statfs (needed for large filesystems)
github.com/emscripten-c...
Includes a few minor API changes (see changelog), like using 64-bit indexes in statfs (needed for large filesystems)
Emscripten 4.0.11 is out! 🚀
github.com/emscripten-c...
Among other changes, this includes support for LLVM's source-based code coverage:
clang.llvm.org/docs/SourceB...
github.com/emscripten-c...
Among other changes, this includes support for LLVM's source-based code coverage:
clang.llvm.org/docs/SourceB...
github.com
July 14, 2025 at 6:43 PM
Emscripten 4.0.11 is out! 🚀
github.com/emscripten-c...
Among other changes, this includes support for LLVM's source-based code coverage:
clang.llvm.org/docs/SourceB...
github.com/emscripten-c...
Among other changes, this includes support for LLVM's source-based code coverage:
clang.llvm.org/docs/SourceB...
Emscripten 4.0.10 is out! 🚀
github.com/emscripten-c...
Includes LLVM library updates, better support for pkg-config, and lots of cleanups.
github.com/emscripten-c...
Includes LLVM library updates, better support for pkg-config, and lots of cleanups.
github.com
June 9, 2025 at 9:20 PM
Emscripten 4.0.10 is out! 🚀
github.com/emscripten-c...
Includes LLVM library updates, better support for pkg-config, and lots of cleanups.
github.com/emscripten-c...
Includes LLVM library updates, better support for pkg-config, and lots of cleanups.
Nice and detailed video about porting games to the Web using Emscripten and WebAssembly.
Good summary of the things that port easily, and the things that don't (e.g. DirectX), and possible solutions.
www.youtube.com/watch?v=xMve...
Good summary of the things that port easily, and the things that don't (e.g. DirectX), and possible solutions.
www.youtube.com/watch?v=xMve...
Heroes of Might and Magic III in the Browser. Hard or not?
YouTube video by Alexander Guryanov
www.youtube.com
May 28, 2025 at 6:01 PM
Nice and detailed video about porting games to the Web using Emscripten and WebAssembly.
Good summary of the things that port easily, and the things that don't (e.g. DirectX), and possible solutions.
www.youtube.com/watch?v=xMve...
Good summary of the things that port easily, and the things that don't (e.g. DirectX), and possible solutions.
www.youtube.com/watch?v=xMve...
Emscripten 4.0.9 is out! 🚀
github.com/emscripten-c...
Includes 64-bit integer handling fixes in several JS interop APIs (see changelog for more)
github.com/emscripten-c...
Includes 64-bit integer handling fixes in several JS interop APIs (see changelog for more)
github.com
May 19, 2025 at 8:20 PM
Emscripten 4.0.9 is out! 🚀
github.com/emscripten-c...
Includes 64-bit integer handling fixes in several JS interop APIs (see changelog for more)
github.com/emscripten-c...
Includes 64-bit integer handling fixes in several JS interop APIs (see changelog for more)
Emscripten 4.0.8 is out! 🚀
github.com/emscripten-c...
The wasm workers and audio worklets features no longer generate files on the side (.ww.js, .aw.js, respectively). Bundling the worker content in the main .js file improves code size and startup times.
github.com/emscripten-c...
The wasm workers and audio worklets features no longer generate files on the side (.ww.js, .aw.js, respectively). Bundling the worker content in the main .js file improves code size and startup times.
github.com
May 1, 2025 at 8:12 PM
Emscripten 4.0.8 is out! 🚀
github.com/emscripten-c...
The wasm workers and audio worklets features no longer generate files on the side (.ww.js, .aw.js, respectively). Bundling the worker content in the main .js file improves code size and startup times.
github.com/emscripten-c...
The wasm workers and audio worklets features no longer generate files on the side (.ww.js, .aw.js, respectively). Bundling the worker content in the main .js file improves code size and startup times.
Emscripten 4.0.7 is out! 🚀
github.com/emscripten-c...
Note that as the changelog mentions, there are some API changes to improve consistency and default code size. Most users should not be affected, but see the changelog for what might require a small modification.
github.com/emscripten-c...
Note that as the changelog mentions, there are some API changes to improve consistency and default code size. Most users should not be affected, but see the changelog for what might require a small modification.
github.com
April 16, 2025 at 4:34 PM
Emscripten 4.0.7 is out! 🚀
github.com/emscripten-c...
Note that as the changelog mentions, there are some API changes to improve consistency and default code size. Most users should not be affected, but see the changelog for what might require a small modification.
github.com/emscripten-c...
Note that as the changelog mentions, there are some API changes to improve consistency and default code size. Most users should not be affected, but see the changelog for what might require a small modification.
Reposted by Emscripten
JSPI, the wasm JavaScript Promise Integration proposal, is now at phase 4:
github.com/WebAssembly/...
That means it is considered fully standardized.
JSPI lets wasm call JS APIs that return a Promise. The wasm awaits it.
It is still behind a flag in most browsers, but hopefully not for long!
github.com/WebAssembly/...
That means it is considered fully standardized.
JSPI lets wasm call JS APIs that return a Promise. The wasm awaits it.
It is still behind a flag in most browsers, but hopefully not for long!
Move JSPI to phase 4 by tlively · Pull Request #207 · WebAssembly/proposals
We voted this to phase 4 at the April 8, 2025 meeting.
github.com
April 15, 2025 at 11:50 PM
JSPI, the wasm JavaScript Promise Integration proposal, is now at phase 4:
github.com/WebAssembly/...
That means it is considered fully standardized.
JSPI lets wasm call JS APIs that return a Promise. The wasm awaits it.
It is still behind a flag in most browsers, but hopefully not for long!
github.com/WebAssembly/...
That means it is considered fully standardized.
JSPI lets wasm call JS APIs that return a Promise. The wasm awaits it.
It is still behind a flag in most browsers, but hopefully not for long!
Emscripten 4.0.6 is out! 🚀
github.com/emscripten-c...
Includes improved source maps support for easier debugging.
github.com/emscripten-c...
Includes improved source maps support for easier debugging.
github.com
March 26, 2025 at 8:47 PM
Emscripten 4.0.6 is out! 🚀
github.com/emscripten-c...
Includes improved source maps support for easier debugging.
github.com/emscripten-c...
Includes improved source maps support for easier debugging.
Emscripten 4.0.5 is out! 🚀
github.com/emscripten-c...
Mostly cleanups and fixes. Work continues on WasmFS. There is experimental support for wasm source imports,
github.com/tc39/proposa...
github.com/emscripten-c...
Mostly cleanups and fixes. Work continues on WasmFS. There is experimental support for wasm source imports,
github.com/tc39/proposa...
github.com
March 12, 2025 at 6:48 PM
Emscripten 4.0.5 is out! 🚀
github.com/emscripten-c...
Mostly cleanups and fixes. Work continues on WasmFS. There is experimental support for wasm source imports,
github.com/tc39/proposa...
github.com/emscripten-c...
Mostly cleanups and fixes. Work continues on WasmFS. There is experimental support for wasm source imports,
github.com/tc39/proposa...
Reposted by Emscripten
Thank you, Jeopardy!
This clue embiggened our hearts.
This clue embiggened our hearts.
February 7, 2025 at 6:02 PM
Thank you, Jeopardy!
This clue embiggened our hearts.
This clue embiggened our hearts.
Reposted by Emscripten
I got Linux running in a PDF file using a RISC-V emulator.
PDFs support Javascript, so Emscripten is used to compile the TinyEMU emulator to asm.js, which runs in the PDF. It boots in about 30 seconds and emulates a riscv32 buildroot system.
linux.doompdf.dev/linux.pdf
github.com/ading2210/li...
PDFs support Javascript, so Emscripten is used to compile the TinyEMU emulator to asm.js, which runs in the PDF. It boots in about 30 seconds and emulates a riscv32 buildroot system.
linux.doompdf.dev/linux.pdf
github.com/ading2210/li...
January 31, 2025 at 8:02 PM
I got Linux running in a PDF file using a RISC-V emulator.
PDFs support Javascript, so Emscripten is used to compile the TinyEMU emulator to asm.js, which runs in the PDF. It boots in about 30 seconds and emulates a riscv32 buildroot system.
linux.doompdf.dev/linux.pdf
github.com/ading2210/li...
PDFs support Javascript, so Emscripten is used to compile the TinyEMU emulator to asm.js, which runs in the PDF. It boots in about 30 seconds and emulates a riscv32 buildroot system.
linux.doompdf.dev/linux.pdf
github.com/ading2210/li...
Reposted by Emscripten
📢 Scaling multithreaded #WebAssembly applications with mimalloc and WasmFS, by @kripken.com:
web.dev/articles/sca.... If you have a multithreaded #Wasm application that does lots of allocations or uses files, then you may benefit greatly by using WasmFS and/or mimalloc.
web.dev/articles/sca.... If you have a multithreaded #Wasm application that does lots of allocations or uses files, then you may benefit greatly by using WasmFS and/or mimalloc.
Scaling multithreaded WebAssembly applications with mimalloc and WasmFS | Articles | web.dev
WasmFS and the mimalloc feature in Emscripten can help a lot with allocation and I/O performance. This guide shows how these features can lead to speed improvements of 10 times or more in some cases.
web.dev
January 31, 2025 at 4:38 PM
📢 Scaling multithreaded #WebAssembly applications with mimalloc and WasmFS, by @kripken.com:
web.dev/articles/sca.... If you have a multithreaded #Wasm application that does lots of allocations or uses files, then you may benefit greatly by using WasmFS and/or mimalloc.
web.dev/articles/sca.... If you have a multithreaded #Wasm application that does lots of allocations or uses files, then you may benefit greatly by using WasmFS and/or mimalloc.