{"slug": "emscripten", "name": "Emscripten", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 6, "commenters": 22, "warners": 3, "score": 6.143, "rising": 2.02, "first": "2025-11-11", "latest": "2026-10-24", "why": "the most respectable work, apart from the original AVS code, was done by the Emscripten contributors", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 7, "neutral": 16, "compare": 1, "warn": 3}, "spark": [0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 2], "listed": true, "loved": [], "caveat": "", "short_quote": "the most respectable work, apart from the original AVS code, was done by the Emscripten contributors", "kind": "", "icon": true, "domain": null, "github_repo": null, "official_url": "https://emscripten.org", "pricing": "", "aliases": ["Emscripten", "emscripten"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 800951953, "item_id": 50059497, "url": "https://news.ycombinator.com/item?id=50059497", "by": "OleksandrC", "date": "2026-10-12", "version": null, "stance": "recommend", "quote": "compiled to WebAssembly with Emscripten", "excerpt": "For people who find interest in weird web applications, I have been working on a game project, in C++, where the client is compiled to WebAssembly with Emscripten, and the application server is also implemented in C++ (behind nginx). This is from pre-AI era also. The game is Civ-like. Custom engine from scratch (including both the 3D stuff, and all the web handling also). Take a look: https://statebuilder.com/", "context": "", "use_case": "", "switched_from": "", "story": "A Modern Web App in C"}, {"id": 800574657, "item_id": 50035916, "url": "https://news.ycombinator.com/item?id=50035916", "by": "moritzwarhier", "date": "2026-10-10", "version": null, "stance": "recommend", "quote": "the most respectable work, apart from the original AVS code, was done by the Emscripten contributors", "excerpt": "Reminds me of my recent vibe coding project of porting Winamp AVS to web using Emscripten. It worked so well that it was simply.. done after a few sessions, and I was amazed and also feeling fuzzy in the head. One turn involved ChatGPT explicitly fixing C++ source code to fix beat detection for the available audio sources after I complained that it was broken. Hands down, sure, the most respectable work, apart from t", "context": "", "use_case": "porting C++ to web", "switched_from": "", "story": "Vibe coded browser ports of Halo, The Simpsons: Hit And Run, GTA work well"}, {"id": 797286976, "item_id": 49830436, "url": "https://news.ycombinator.com/item?id=49830436", "by": "LoganDark", "date": "2026-09-24", "version": null, "stance": "recommend", "quote": "Emscripten's C++-to-WASM cross-compiler worked perfectly fine with the exact same routines", "excerpt": "Another issue that happened in the same project is that for some reason whenever I compiled it with a regular C++ compiler, field writes were disappearing into the abyss. I think I actually never figured that out because it was literally the same object at the same memory address, there were no other threads and yet when a subroutine returned after writing the field, the write disappeared?? The strangest thing is tha", "context": "", "use_case": "compiling C++ to WASM", "switched_from": "", "story": "When the Debugger Lies"}, {"id": 771348035, "item_id": 48209252, "url": "https://news.ycombinator.com/item?id=48209252", "by": "flohofwoe", "date": "2026-05-20", "version": null, "stance": "recommend", "quote": "where I have been flabbergasted by how well Emscripten actually worked", "excerpt": "There were 3 systems, all with interesting differences. The original NaCl was a 'validated subset' of native CPU machine code (e.g. actual x86 machine code with some instructions and instruction sequences disallowed which would allow to escape the sandbox). The next iteration was P(ortable)-NaCl which replaced the native machine code with a subset of LLVM bitcode, which was then compiled at load time. Unfortunately w", "context": "", "use_case": "Compiling C/C++ to the web", "switched_from": "", "story": "Saying Goodbye to Asm.js"}, {"id": 757408736, "item_id": 47338046, "url": "https://news.ycombinator.com/item?id=47338046", "by": "flohofwoe", "date": "2026-03-11", "version": null, "stance": "recommend", "quote": "In Emscripten you can even mix C/C++ and Javascript in the same source file.", "excerpt": "I created and maintain a couple of WASM projects and have not experienced the problems you describe: - https://floooh.github.io/tiny8bit/ - https://floooh.github.io/sokol-webgpu/ - https://floooh.github.io/visualz80remix/ - https://floooh.github.io/doom-sokol/ All those projects also compile into native Windows/Linux/macOS/Android/iOS executables without any code changes, but compiling to WASM and running in web brow", "context": "", "use_case": "", "switched_from": "", "story": "Making WebAssembly a first-class language on the Web"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 785248738, "item_id": 49078046, "url": "https://news.ycombinator.com/item?id=49078046", "by": "destructionator", "date": "2026-07-27", "version": null, "stance": "warn", "quote": "i heard a later version of emscripten broke", "excerpt": "we shipped druntime on emscripten on the opend side almost two years ago, supporting everything but threads and exceptions (i tested on emcc 3.1.69, i heard a later version of emscripten broke, im not sure). see my blog post from release time: https://dpldocs.info/this-week-in-arsd/Blog.Posted_2024_10_25.html there's a contributor working with both upstream and opend adding wasi support as well, and he also got excep", "context": "", "use_case": "", "switched_from": "", "story": "DConf 2026 in London"}, {"id": 773774704, "item_id": 48360919, "url": "https://news.ycombinator.com/item?id=48360919", "by": "speps", "date": "2026-06-01", "version": null, "stance": "warn", "quote": "replaced my build pipelines with just a Zig compiler instead of emscripten", "excerpt": "Stop the misinformation, it\u2019s just changing where it\u2019s being done moving from the language to the build system itself: https://ziggit.dev/t/cimport-going-away/5132 It\u2019s also decoupling Zig compiler and C compiler so they\u2019re updated independently. It\u2019s still a bummer in my view as I just replaced my build pipelines with just a Zig compiler instead of emscripten but that\u2019s fine.", "context": "", "use_case": "", "switched_from": "", "story": "Flipper Zero Zig Template"}, {"id": 756765984, "item_id": 47297874, "url": "https://news.ycombinator.com/item?id=47297874", "by": "andai", "date": "2026-03-08", "version": null, "stance": "warn", "quote": "Spent the last day of the C++ one dealing with a weird Emscripten bug.", "excerpt": "I made a couple 2D browser games a few years ago in various WASM languages. I used C++, Zig, Odin, and Rust. (Including a game with online multiplayer! Though only the client, I did the server in TS ;) Now a disclaimer, I experienced most of these languages for the first time during the jam, which biases me towards confusion and suffering. That being said, there was still a big gradient, and it does give us useful da", "context": "", "use_case": "Compiling C++ to WebAssembly", "switched_from": "", "story": "Notes on Writing WASM"}]}], "who": [], "tags": [], "use_cases": ["c++ to webassembly build", "porting c++ to web", "compiling c++ to wasm", "c/c++ to wasm", "compile c to javascript", "compiling c/c++ to the web"], "compared": [{"slug": "micropolis", "name": "Micropolis", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "sokol", "name": "sokol", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "webassembly", "name": "WebAssembly", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48206340", "title": "Saying Goodbye to Asm.js", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47331811", "title": "Making WebAssembly a first-class language on the Web", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46696283", "title": "Show HN: Coi \u2013 A language that compiles to WASM, beats React/Vue", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46551044", "title": "What Happened to WebAssembly", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50194536", "title": "How to run a city builder on 16 MHz", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=50058528", "title": "A Modern Web App in C", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 2}, "2025-12": {"neutral": 1}, "2026-01": {"recommend": 1, "neutral": 2, "compare": 1}, "2026-02": {"neutral": 3, "recommend": 1}, "2026-03": {"warn": 1, "recommend": 1, "neutral": 1}, "2026-04": {"neutral": 2}, "2026-05": {"neutral": 2, "recommend": 1}, "2026-06": {"warn": 1, "neutral": 1}, "2026-07": {"neutral": 1, "warn": 1}, "2026-08": {}, "2026-09": {"recommend": 1}, "2026-10": {"recommend": 2, "neutral": 1}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 803582786, "item_id": 50223924, "url": "https://news.ycombinator.com/item?id=50223924", "by": "DonHopkins", "date": "2026-10-24", "version": null, "stance": "neutral", "quote": "Now it compiles with emscripten/embind into WASM", "excerpt": "Thanks for the link! That's the older C/TCL/Tk code from the original micropolis repo and OLPC release. Here's the latest version of the code, translated to C++ with better names and comments, in the newer MicropolisCore repo: https://github.com/SimHacker/MicropolisCore/blob/main/packages/micropolis-engine/src/simulate.cpp#L132 Chaim Gingold wrote a book all about \"Building SimCity\": https://mitpress.mit.edu/97802625", "context": "", "use_case": "C++ to WebAssembly build", "switched_from": "", "story": "How to run a city builder on 16 MHz"}, {"id": 800951953, "item_id": 50059497, "url": "https://news.ycombinator.com/item?id=50059497", "by": "OleksandrC", "date": "2026-10-12", "version": null, "stance": "recommend", "quote": "compiled to WebAssembly with Emscripten", "excerpt": "For people who find interest in weird web applications, I have been working on a game project, in C++, where the client is compiled to WebAssembly with Emscripten, and the application server is also implemented in C++ (behind nginx). This is from pre-AI era also. The game is Civ-like. Custom engine from scratch (including both the 3D stuff, and all the web handling also). Take a look: https://statebuilder.com/", "context": "", "use_case": "", "switched_from": "", "story": "A Modern Web App in C"}, {"id": 800574657, "item_id": 50035916, "url": "https://news.ycombinator.com/item?id=50035916", "by": "moritzwarhier", "date": "2026-10-10", "version": null, "stance": "recommend", "quote": "the most respectable work, apart from the original AVS code, was done by the Emscripten contributors", "excerpt": "Reminds me of my recent vibe coding project of porting Winamp AVS to web using Emscripten. It worked so well that it was simply.. done after a few sessions, and I was amazed and also feeling fuzzy in the head. One turn involved ChatGPT explicitly fixing C++ source code to fix beat detection for the available audio sources after I complained that it was broken. Hands down, sure, the most respectable work, apart from t", "context": "", "use_case": "porting C++ to web", "switched_from": "", "story": "Vibe coded browser ports of Halo, The Simpsons: Hit And Run, GTA work well"}, {"id": 797286976, "item_id": 49830436, "url": "https://news.ycombinator.com/item?id=49830436", "by": "LoganDark", "date": "2026-09-24", "version": null, "stance": "recommend", "quote": "Emscripten's C++-to-WASM cross-compiler worked perfectly fine with the exact same routines", "excerpt": "Another issue that happened in the same project is that for some reason whenever I compiled it with a regular C++ compiler, field writes were disappearing into the abyss. I think I actually never figured that out because it was literally the same object at the same memory address, there were no other threads and yet when a subroutine returned after writing the field, the write disappeared?? The strangest thing is tha", "context": "", "use_case": "compiling C++ to WASM", "switched_from": "", "story": "When the Debugger Lies"}, {"id": 785248738, "item_id": 49078046, "url": "https://news.ycombinator.com/item?id=49078046", "by": "destructionator", "date": "2026-07-27", "version": null, "stance": "warn", "quote": "i heard a later version of emscripten broke", "excerpt": "we shipped druntime on emscripten on the opend side almost two years ago, supporting everything but threads and exceptions (i tested on emcc 3.1.69, i heard a later version of emscripten broke, im not sure). see my blog post from release time: https://dpldocs.info/this-week-in-arsd/Blog.Posted_2024_10_25.html there's a contributor working with both upstream and opend adding wasi support as well, and he also got excep", "context": "", "use_case": "", "switched_from": "", "story": "DConf 2026 in London"}, {"id": 780115650, "item_id": 48757228, "url": "https://news.ycombinator.com/item?id=48757228", "by": "lukan", "date": "2026-07-01", "version": null, "stance": "neutral", "quote": "", "excerpt": "Have a look here, this guy maintains a wasm build of box2D https://github.com/Birch-san/box2d-wasm And Catto said, Box3D is very similar to Box2D.", "context": "", "use_case": "", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 776547475, "item_id": 48534217, "url": "https://news.ycombinator.com/item?id=48534217", "by": "tombert", "date": "2026-06-14", "version": null, "stance": "neutral", "quote": "how to get CheerpJ and Emscripten playing together", "excerpt": "I've been keeping myself pretty busy lately. Con Edison keeps getting so stupidly expensive that I decided to use my backyard for reasons other than generating weeds that I have to pay someone to remove, and instead decided to set up an off grid solar in my backyard. I bought an Aferiy P310, learned how to use a few tools to drill some holes in my bricks, and set up a bunch of Home Assistant automations, and now my b", "context": "", "use_case": "C/C++ to WASM", "switched_from": "", "story": "Ask HN: What are you working on? (June 2026)"}, {"id": 773774704, "item_id": 48360919, "url": "https://news.ycombinator.com/item?id=48360919", "by": "speps", "date": "2026-06-01", "version": null, "stance": "warn", "quote": "replaced my build pipelines with just a Zig compiler instead of emscripten", "excerpt": "Stop the misinformation, it\u2019s just changing where it\u2019s being done moving from the language to the build system itself: https://ziggit.dev/t/cimport-going-away/5132 It\u2019s also decoupling Zig compiler and C compiler so they\u2019re updated independently. It\u2019s still a bummer in my view as I just replaced my build pipelines with just a Zig compiler instead of emscripten but that\u2019s fine.", "context": "", "use_case": "", "switched_from": "", "story": "Flipper Zero Zig Template"}, {"id": 771465776, "item_id": 48216611, "url": "https://news.ycombinator.com/item?id=48216611", "by": "ryukoposting", "date": "2026-05-20", "version": null, "stance": "neutral", "quote": "we used Emscripten to turn it into some JS", "excerpt": "The bit about \"thick apps\" always stuck with me. Partly because the name is funny, partly because it hit close to home. The first time I saw his talk, I was an intern working for a company that had built an entire compiler, IDE, and debugger in-house for their little industrial IO boxes. The compiler was written in C, and we used Emscripten to turn it into some JS that then got \"compiled\" (see: concatenated) into a g", "context": "", "use_case": "compile C to JavaScript", "switched_from": "", "story": "Saying Goodbye to Asm.js"}, {"id": 771348035, "item_id": 48209252, "url": "https://news.ycombinator.com/item?id=48209252", "by": "flohofwoe", "date": "2026-05-20", "version": null, "stance": "recommend", "quote": "where I have been flabbergasted by how well Emscripten actually worked", "excerpt": "There were 3 systems, all with interesting differences. The original NaCl was a 'validated subset' of native CPU machine code (e.g. actual x86 machine code with some instructions and instruction sequences disallowed which would allow to escape the sandbox). The next iteration was P(ortable)-NaCl which replaced the native machine code with a subset of LLVM bitcode, which was then compiled at load time. Unfortunately w", "context": "", "use_case": "Compiling C/C++ to the web", "switched_from": "", "story": "Saying Goodbye to Asm.js"}, {"id": 767553075, "item_id": 47972067, "url": "https://news.ycombinator.com/item?id=47972067", "by": "DonHopkins", "date": "2026-05-01", "version": null, "stance": "neutral", "quote": "compiled with Emscripten into WASM", "excerpt": "I spoke to Yoot about it recently. There are some issues with Nintendo and licensing that may take some time to work through. My fingers are crossed, but it might take a while and require patience. We all want it to happen though! Meanwhile I'm working on Micropolis (based on the original SimCity Classic code, cleaned up, and compiled with Emscripten into WASM), and also reimplementing The Sims character animation sy", "context": "", "use_case": "Compile C to WASM", "switched_from": "", "story": null}, {"id": 767075073, "item_id": 47942192, "url": "https://news.ycombinator.com/item?id=47942192", "by": "midzer", "date": "2026-04-28", "version": null, "stance": "neutral", "quote": "with Emscripten", "excerpt": "Ported from https://github.com/SaturninTheAlien/pk2_greta with Emscripten My changes in https://github.com/midzer/pk2_greta/tree/emscripten", "context": "", "use_case": "Porting to web", "switched_from": "", "story": null}, {"id": 762479747, "item_id": 47654984, "url": "https://news.ycombinator.com/item?id=47654984", "by": "Levitating", "date": "2026-04-05", "version": null, "stance": "neutral", "quote": "using emscripten to get on the web", "excerpt": "SDL3 should get more love in general. The SDL3 GPU API[1] provided a cross-platform GPU API even before WebGPU. In Rust it's a good alternative for winit/wgpu. For that reason I added it to areweguiyet.com[2] last week, where apparently it wasn't even listed before. I am currently using it to develop a space game[3] inspired by the original BBC Elite. Using emscripten to get on the web and QUIC/Webtransport for netwo", "context": "", "use_case": "Web builds", "switched_from": "", "story": "L\u00d6VE: 2D Game Framework for Lua"}, {"id": 758094785, "item_id": 47380924, "url": "https://news.ycombinator.com/item?id=47380924", "by": "lioeters", "date": "2026-03-14", "version": null, "stance": "neutral", "quote": "", "excerpt": "I've been learning to use WebAssembly directly, by hand-writing the Lisp-like assembly text, and also compiling C to Wasm without Emscripten or LLVM. It's given me a deeper appreciation for the original specification, version 1. Its technical design is a solid foundation, a lot of good thought went into it: Briging the Web Up to Speed With WebAssembly - https://github.com/WebAssembly/spec/raw/refs/tags/wg-1.0/papers/", "context": "", "use_case": "Compiling C to WASM", "switched_from": "", "story": "Nominal Types in WebAssembly"}, {"id": 757413312, "item_id": 47338332, "url": "https://news.ycombinator.com/item?id=47338332", "by": "flohofwoe", "date": "2026-03-11", "version": null, "stance": "neutral", "quote": "Vanilla Emscripten.", "excerpt": "Vanilla Emscripten. Most of the higher level platform abstraction (e.g. window system glue, 3D APIs or audio APIs) happens via the sokol headers though: https://github.com/floooh/sokol", "context": "", "use_case": "", "switched_from": "", "story": "Making WebAssembly a first-class language on the Web"}, {"id": 757408736, "item_id": 47338046, "url": "https://news.ycombinator.com/item?id=47338046", "by": "flohofwoe", "date": "2026-03-11", "version": null, "stance": "recommend", "quote": "In Emscripten you can even mix C/C++ and Javascript in the same source file.", "excerpt": "I created and maintain a couple of WASM projects and have not experienced the problems you describe: - https://floooh.github.io/tiny8bit/ - https://floooh.github.io/sokol-webgpu/ - https://floooh.github.io/visualz80remix/ - https://floooh.github.io/doom-sokol/ All those projects also compile into native Windows/Linux/macOS/Android/iOS executables without any code changes, but compiling to WASM and running in web brow", "context": "", "use_case": "", "switched_from": "", "story": "Making WebAssembly a first-class language on the Web"}, {"id": 756765984, "item_id": 47297874, "url": "https://news.ycombinator.com/item?id=47297874", "by": "andai", "date": "2026-03-08", "version": null, "stance": "warn", "quote": "Spent the last day of the C++ one dealing with a weird Emscripten bug.", "excerpt": "I made a couple 2D browser games a few years ago in various WASM languages. I used C++, Zig, Odin, and Rust. (Including a game with online multiplayer! Though only the client, I did the server in TS ;) Now a disclaimer, I experienced most of these languages for the first time during the jam, which biases me towards confusion and suffering. That being said, there was still a big gradient, and it does give us useful da", "context": "", "use_case": "Compiling C++ to WebAssembly", "switched_from": "", "story": "Notes on Writing WASM"}, {"id": 753531282, "item_id": 47095705, "url": "https://news.ycombinator.com/item?id=47095705", "by": "lysace", "date": "2026-02-20", "version": null, "stance": "recommend", "quote": "getting Emscripten to work with ObjC. Now, that would have been cool.", "excerpt": "It's a manual javascript imitation. Not sure why they felt this was needed. The original source code isn't really involved. This is the most commented HN posting on this from that time (2019): https://news.ycombinator.com/item?id=19249373 IMHO this should have been (something along the lines of) GNUstep + TimBL's original code (https://github.com/cynthia/WorldWideWeb) + Emscripten + getting Emscripten to work with Ob", "context": "", "use_case": "", "switched_from": "", "story": "CERN rebuilt the original browser from 1989"}, {"id": 752407105, "item_id": 47025444, "url": "https://news.ycombinator.com/item?id=47025444", "by": "gottebp", "date": "2026-02-15", "version": null, "stance": "neutral", "quote": "via Emscripten", "excerpt": "Nostalgia and Claude Code makes some interesting hard things possible. Five of us wrote this as our ECE291 final project at UIUC in the summer of 2002. It's a Middle Earth space shooter in pure x86 assembly, fully software rendered. It has hand-tuned SSE memory ops, Mersenne Twister RNG, toroidal physics, 10,000 particles at 60fps. We were pretty rough after those two weeks and probably didn't smell great either. The", "context": "", "use_case": "compiling C to WebAssembly", "switched_from": "", "story": "UIUC 2002 \u2013 we wrote a space shooter in x86 asm. In 2026 Claude resurrected it"}, {"id": 752320225, "item_id": 47020014, "url": "https://news.ycombinator.com/item?id=47020014", "by": "gottebp", "date": "2026-02-14", "version": null, "stance": "neutral", "quote": "compiled to WebAssembly via Emscripten", "excerpt": "This started as a two-week final project for ECE 291 at UIUC in 2002. A space (or sky) shooter written entirely in x86 assembly. Hand tuned SSE memory ops, Mersenne Twister RNG, toroidal map physics, 10,000 particles at, all software-rendered. Twenty-three years later I burned a pile of Opus 4.6 tokens to port the assembly to C, then compiled to WebAssembly via Emscripten. The first attempt was a direct x86 to WASM t", "context": "", "use_case": "C to WebAssembly compilation", "switched_from": "", "story": "Show HN: An x86 assembly game from 2002, ported to WebAssembly with Claude Code"}, {"id": 751576295, "item_id": 46973518, "url": "https://news.ycombinator.com/item?id=46973518", "by": "DonHopkins", "date": "2026-02-11", "version": null, "stance": "neutral", "quote": "compiled the C++ simulator engine with emscripten", "excerpt": "When I ported the Mac version of SimCity to Unix using NeWS/HyperLook for the front end, I naturally had to split it into and engine (the C simulator back-end \"client\"), and the user interface (the PostScript/NeWS/HyperLook front-end \"server\"), and define a network messaging interface (API) between them. https://donhopkins.medium.com/hyperlook-nee-hypernews-nee-goodnews-99f411e58ce4 That made it a lot easier to later", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Micropolis/SimCity Clone in Emacs Lisp"}, {"id": 751125329, "item_id": 46945333, "url": "https://news.ycombinator.com/item?id=46945333", "by": "gulan28", "date": "2026-02-09", "version": null, "stance": "neutral", "quote": "It's playable on the web with emscripten.", "excerpt": "Building a roguelike in c. It's playable on the web with emscripten. It's still a bit rough around the edges+not balanced and doesn't even have a \"you won\" screen yet but it works https://balbor.netlify.app/", "context": "", "use_case": "Compiling C to web", "switched_from": "", "story": "Ask HN: What Are You Working On? (February 2026)"}, {"id": 747952784, "item_id": 46747049, "url": "https://news.ycombinator.com/item?id=46747049", "by": "flohofwoe", "date": "2026-01-24", "version": null, "stance": "neutral", "quote": "Emscripten hit around 40 FPS", "excerpt": "First: very nice project, kudos! But: > It\u2019s way more efficient, I ran a benchmark rendering 10k rectangles on a canvas and the difference was huge: Emscripten hit around 40 FPS, while my setup hit 100 FPS. This sounds a bit suspicious tbh. For instance in this Emscripten WebGL2 sample I can move the instance slider to about 25000 before the frame rate drops below 120 fps on my M1 Mac in Chrome: https://floooh.github", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Coi \u2013 A language that compiles to WASM, beats React/Vue"}, {"id": 747895809, "item_id": 46743488, "url": "https://news.ycombinator.com/item?id=46743488", "by": "trzeci", "date": "2026-01-24", "version": null, "stance": "compare", "quote": "it occupies a different market than Emscripten", "excerpt": "I love the idea and execution. I did some reading of the code webcc and it's just brilliantly simple, and delivers to the promise. From the product perspective, it occupies a different market than Emscripten, and I don't see it's good comparison. Your product is borderline optimized to run C++ code on Web (and Coi is a cherry on top of that). Where Emscripten is made to make native C++ application to run on Web - wit", "context": "game developer", "use_case": "C++ to web", "switched_from": "", "story": "Show HN: Coi \u2013 A language that compiles to WASM, beats React/Vue"}, {"id": 744850208, "item_id": 46553138, "url": "https://news.ycombinator.com/item?id=46553138", "by": "valadaptive", "date": "2026-01-09", "version": null, "stance": "neutral", "quote": "Emscripten provides a libc implementation based on musl", "excerpt": "> Not many people are going to want to be rolling their own libc like that author. Emscripten provides a libc implementation based on musl, and so does wasi-libc (https://github.com/WebAssembly/wasi-libc). If you explicitly list which functions you want to export from your WebAssembly module, the linker will remove all the unused code, in the same way that \"tree-shaking\" works for JS bundlers. In my experience, a Web", "context": "", "use_case": "", "switched_from": "", "story": "What Happened to WebAssembly"}, {"id": 744825904, "item_id": 46551619, "url": "https://news.ycombinator.com/item?id=46551619", "by": "ubavic", "date": "2026-01-09", "version": null, "stance": "recommend", "quote": "download Emscripten, learn a little about WASM, make one toy project", "excerpt": "From my experience, WASM is great for easily porting existing codebases to the browser. It took me less than a day to download Emscripten, learn a little about WASM, make one toy project, and then port a 20-year-old, 40-KLOC C++ project to the browser [1]. The last part only took me half an hour, and I don't even write C++. [1] https://poincare.matf.bg.ac.rs/~janicic/gclc/", "context": "", "use_case": "C/C++ to WebAssembly", "switched_from": "", "story": "What Happened to WebAssembly"}, {"id": 738002737, "item_id": 46125171, "url": "https://news.ycombinator.com/item?id=46125171", "by": "westurner", "date": "2025-12-02", "version": null, "stance": "neutral", "quote": "Emscripten handles malloc and free with dlmalloc, emmalloc, mimalloc", "excerpt": "A bit OT here, but oh well Would hardened_malloc or llvm scudo be useful in a WASM runtime (given that WASM doesn't have an MMU)? https://www.google.com/search?q=would+hardened_malloc+be+useful+in+a+wasm+runtime Emscripten handles malloc and free with dlmalloc, emmalloc, mimalloc, emcc your_code.c -s 'MALLOC=\"emmalloc\"' -o your_code.html how to add \"hardened_malloc\" memory allocator support to emscripten for WASM? ht", "context": "", "use_case": "", "switched_from": "", "story": "Ghostty compiled to WASM with xterm.js API compatibility"}, {"id": 736223121, "item_id": 46013945, "url": "https://news.ycombinator.com/item?id=46013945", "by": "flohofwoe", "date": "2025-11-22", "version": null, "stance": "neutral", "quote": "I use the Emscripten SDK as sysroot and linker", "excerpt": "The \"official\" wasi-sdk is quite similar, a prepackageded clang toolchain to compile c/c++ code to wasi. What makes emscripten more complicated is the browser integration (eg compiling into a ready-to-run html/js/wasm bundle and providing C API wrappers for various web apis), and Zig also only manages the \"compile to wasm\" part but lacks Emscripten's JS interop features (that's why in my zig+wasm experiments I use th", "context": "", "use_case": "sysroot and linker for Wasm", "switched_from": "", "story": "WebAssembly from the Ground Up"}, {"id": 734258640, "item_id": 45891165, "url": "https://news.ycombinator.com/item?id=45891165", "by": "simoncion", "date": "2025-11-11", "version": null, "stance": "neutral", "quote": "Have Kids These Days forgotten all about Emscripten?", "excerpt": "> Will it ever run in WASM? A ten-second search reveals [0]. (Have Kids These Days forgotten all about Emscripten?) However, given that web browser pages are often short-lived, I don't see what benefit bringing in all of Erlang and its VM gets you, other than the fact that you've pulled off the stunt. [0] <https://www.antvaset.com/erlang-otp-wasm>", "context": "", "use_case": "Compile C to WebAssembly", "switched_from": "", "story": "How I fell in love with Erlang"}]}