WebAssembly from the Ground Up
@wasmgroundup.com
A book about WebAssembly by @marianoguerra.org and @dubroy.com — learn Wasm by building a simple compiler in JavaScript.
https://wasmgroundup.com/
https://wasmgroundup.com/
Pinned
Excited to announce the official launch of our online book, WebAssembly from the Ground Up! 🎉
It's the book we wish we'd had 3 years ago.
No messing with tools and frameworks. It's a hands-on guide to the core of Wasm: the instruction set and module format.
Link below. 👇
It's the book we wish we'd had 3 years ago.
No messing with tools and frameworks. It's a hands-on guide to the core of Wasm: the instruction set and module format.
Link below. 👇
Reposted by WebAssembly from the Ground Up
Ever thought about writing #WebAssembly by hand? 🤔
Authors Patrick @dubroy.com and @marianoguerra.org think it's crucial for learning. They join #WasmAssembly host Thomas Steiner to discuss their ebook, "WebAssembly from the Ground Up" → goo.gle/3Ln67Pp
Authors Patrick @dubroy.com and @marianoguerra.org think it's crucial for learning. They join #WasmAssembly host Thomas Steiner to discuss their ebook, "WebAssembly from the Ground Up" → goo.gle/3Ln67Pp
November 4, 2025 at 9:00 PM
Ever thought about writing #WebAssembly by hand? 🤔
Authors Patrick @dubroy.com and @marianoguerra.org think it's crucial for learning. They join #WasmAssembly host Thomas Steiner to discuss their ebook, "WebAssembly from the Ground Up" → goo.gle/3Ln67Pp
Authors Patrick @dubroy.com and @marianoguerra.org think it's crucial for learning. They join #WasmAssembly host Thomas Steiner to discuss their ebook, "WebAssembly from the Ground Up" → goo.gle/3Ln67Pp
Reposted by WebAssembly from the Ground Up
Today I presented to the Wasm CG a proposal for fine-grained dynamic code generation as a core WebAssembly feature. The proposal is now at phase 1!
github.com/WebAssembly/...
Also immortalized in song: suno.com/song/19e0679...
github.com/WebAssembly/...
Also immortalized in song: suno.com/song/19e0679...
GitHub - WebAssembly/jit-interface: WebAssembly specification, reference interpreter, and test suite for the jit-interfaces proposal.
WebAssembly specification, reference interpreter, and test suite for the jit-interfaces proposal. - WebAssembly/jit-interface
github.com
October 29, 2025 at 9:49 PM
Today I presented to the Wasm CG a proposal for fine-grained dynamic code generation as a core WebAssembly feature. The proposal is now at phase 1!
github.com/WebAssembly/...
Also immortalized in song: suno.com/song/19e0679...
github.com/WebAssembly/...
Also immortalized in song: suno.com/song/19e0679...
Reposted by WebAssembly from the Ground Up
Working on a diagram for an upcoming @wasmgroundup.com blog post.
October 29, 2025 at 10:24 AM
Working on a diagram for an upcoming @wasmgroundup.com blog post.
This week the W3C WebAssembly Community Group is holding an in-person meeting in Munich.
We (@dubroy.com and @marianoguerra.org) are planning to be there. Patrick tomorrow, and both of us on Thursday for the Research Day.
If you see us, come say hi!
We (@dubroy.com and @marianoguerra.org) are planning to be there. Patrick tomorrow, and both of us on Thursday for the Research Day.
If you see us, come say hi!
October 27, 2025 at 4:44 PM
This week the W3C WebAssembly Community Group is holding an in-person meeting in Munich.
We (@dubroy.com and @marianoguerra.org) are planning to be there. Patrick tomorrow, and both of us on Thursday for the Research Day.
If you see us, come say hi!
We (@dubroy.com and @marianoguerra.org) are planning to be there. Patrick tomorrow, and both of us on Thursday for the Research Day.
If you see us, come say hi!
Reposted by WebAssembly from the Ground Up
📢 New #WasmAssembly podcast 🎙️ episode:
#WebAssembly from the Ground Up with @dubroy.com and @marianoguerra.org. Learn how they're teaching #Wasm by building a compiler in JavaScript and why writing Wasm by hand is crucial!
🍿 www.youtube.com/watch?v=dRdD...
🎧 wasmassembly.libsyn.com/webassembly-...
#WebAssembly from the Ground Up with @dubroy.com and @marianoguerra.org. Learn how they're teaching #Wasm by building a compiler in JavaScript and why writing Wasm by hand is crucial!
🍿 www.youtube.com/watch?v=dRdD...
🎧 wasmassembly.libsyn.com/webassembly-...
WebAssembly from the Ground Up with Patrick Dubroy and Mariano Guerra
YouTube video by Chrome for Developers
www.youtube.com
October 20, 2025 at 6:22 PM
📢 New #WasmAssembly podcast 🎙️ episode:
#WebAssembly from the Ground Up with @dubroy.com and @marianoguerra.org. Learn how they're teaching #Wasm by building a compiler in JavaScript and why writing Wasm by hand is crucial!
🍿 www.youtube.com/watch?v=dRdD...
🎧 wasmassembly.libsyn.com/webassembly-...
#WebAssembly from the Ground Up with @dubroy.com and @marianoguerra.org. Learn how they're teaching #Wasm by building a compiler in JavaScript and why writing Wasm by hand is crucial!
🍿 www.youtube.com/watch?v=dRdD...
🎧 wasmassembly.libsyn.com/webassembly-...
Interesting paper presented at MPLR yesterday — "A Snapshot of the Performance of Wasm Backends for Managed Languages"
→ users.cs.northwestern.edu/~robby/pubs/...
Benchmarks Wasm implementations of Dart, Haskell, Scheme, OCaml, Ruby against the native impls.
→ users.cs.northwestern.edu/~robby/pubs/...
Benchmarks Wasm implementations of Dart, Haskell, Scheme, OCaml, Ruby against the native impls.
October 14, 2025 at 4:34 AM
Interesting paper presented at MPLR yesterday — "A Snapshot of the Performance of Wasm Backends for Managed Languages"
→ users.cs.northwestern.edu/~robby/pubs/...
Benchmarks Wasm implementations of Dart, Haskell, Scheme, OCaml, Ruby against the native impls.
→ users.cs.northwestern.edu/~robby/pubs/...
Benchmarks Wasm implementations of Dart, Haskell, Scheme, OCaml, Ruby against the native impls.
A look at how people are shipping Wasm as part of JavaScript libraries.
TIL: WebAssembly library initialization patterns
→https://github.com/pdubroy/til/blob/main/js/2025-10-05-WebAssembly-library-initialization-patterns.md
→https://github.com/pdubroy/til/blob/main/js/2025-10-05-WebAssembly-library-initialization-patterns.md
October 6, 2025 at 6:14 AM
A look at how people are shipping Wasm as part of JavaScript libraries.
An interesting article about how Figma moved from WebGL to WebGPU —
Figma rendering: Powered by WebGPU
→ www.figma.com/blog/figma-r...
Also talks a bit about their overall app architecture, and how they use #wasm.
Figma rendering: Powered by WebGPU
→ www.figma.com/blog/figma-r...
Also talks a bit about their overall app architecture, and how they use #wasm.
September 29, 2025 at 2:36 PM
An interesting article about how Figma moved from WebGL to WebGPU —
Figma rendering: Powered by WebGPU
→ www.figma.com/blog/figma-r...
Also talks a bit about their overall app architecture, and how they use #wasm.
Figma rendering: Powered by WebGPU
→ www.figma.com/blog/figma-r...
Also talks a bit about their overall app architecture, and how they use #wasm.
Reposted by WebAssembly from the Ground Up
The WebAssembly 3.0 spec is complete!
webassembly.org/news/2025-09...
This includes major features like GC, 64-bit memories, exceptions, and tail calls.
webassembly.org/news/2025-09...
This includes major features like GC, 64-bit memories, exceptions, and tail calls.
Wasm 3.0 Completed - WebAssembly
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the...
webassembly.org
September 17, 2025 at 5:04 PM
The WebAssembly 3.0 spec is complete!
webassembly.org/news/2025-09...
This includes major features like GC, 64-bit memories, exceptions, and tail calls.
webassembly.org/news/2025-09...
This includes major features like GC, 64-bit memories, exceptions, and tail calls.
Reposted by WebAssembly from the Ground Up
@dubroy.com alerted me to the Safari release notes (developer.apple.com/documentatio...) say version 26 ships an in-place interpreter for WebAssembly, which is in part based on the Wizard design, but adapted for Safari's use cases.
This is cool!
Wasm brings all the VMs to tiers!
This is cool!
Wasm brings all the VMs to tiers!
developer.apple.com
September 16, 2025 at 1:44 PM
@dubroy.com alerted me to the Safari release notes (developer.apple.com/documentatio...) say version 26 ships an in-place interpreter for WebAssembly, which is in part based on the Wizard design, but adapted for Safari's use cases.
This is cool!
Wasm brings all the VMs to tiers!
This is cool!
Wasm brings all the VMs to tiers!
Nice use of Wasm — bundling lightweight WebAssembly decoders with the data.
AnyBlox: A Framework for Self-Decoding Datasets
→ gienieczko.com/anyblox-paper
/ht Jamie Brandon (www.scattered-thoughts.net/log/0054/)
AnyBlox: A Framework for Self-Decoding Datasets
→ gienieczko.com/anyblox-paper
/ht Jamie Brandon (www.scattered-thoughts.net/log/0054/)
September 12, 2025 at 1:09 PM
Nice use of Wasm — bundling lightweight WebAssembly decoders with the data.
AnyBlox: A Framework for Self-Decoding Datasets
→ gienieczko.com/anyblox-paper
/ht Jamie Brandon (www.scattered-thoughts.net/log/0054/)
AnyBlox: A Framework for Self-Decoding Datasets
→ gienieczko.com/anyblox-paper
/ht Jamie Brandon (www.scattered-thoughts.net/log/0054/)
Designing syntax is hard!
Some good examples here of what makes language design so tricky.
Some good examples here of what makes language design so tricky.
From the author of Pandoc —
"I'll go through the six features of Markdown that I think have created the most difficulties"
Beyond Markdown: johnmacfarlane.net/beyond-markd...
"I'll go through the six features of Markdown that I think have created the most difficulties"
Beyond Markdown: johnmacfarlane.net/beyond-markd...
John MacFarlane - Beyond Markdown
John MacFarlane
johnmacfarlane.net
September 8, 2025 at 2:52 PM
Designing syntax is hard!
Some good examples here of what makes language design so tricky.
Some good examples here of what makes language design so tricky.
Many of our friends in North America are back to school already, but we've still got two more weeks of holidays over here.
Which means: it's not too late to snag a copy of the book in our summer sale!
Which means: it's not too late to snag a copy of the book in our summer sale!
The summer holidays just started here in southern Germany.
So, it's time for a ☀️ SUMMER SALE ☀️ —
Use the code SUMMER25 for a 25% discount on the book until Sept 15: wasmgroundup.com
So, it's time for a ☀️ SUMMER SALE ☀️ —
Use the code SUMMER25 for a 25% discount on the book until Sept 15: wasmgroundup.com
WebAssembly from the Ground Up
A book about WebAssembly — learn Wasm by building a simple compiler in JavaScript.
wasmgroundup.com
September 2, 2025 at 1:51 PM
Many of our friends in North America are back to school already, but we've still got two more weeks of holidays over here.
Which means: it's not too late to snag a copy of the book in our summer sale!
Which means: it's not too late to snag a copy of the book in our summer sale!
Had a fun time recording a podcast episode today…looking forward to sharing it with y'all soon!
September 2, 2025 at 1:37 PM
Had a fun time recording a podcast episode today…looking forward to sharing it with y'all soon!
Reposted by WebAssembly from the Ground Up
Lately I’ve been learning more about WebAssembly fundamentals by reading this fantastic book: wasmgroundup.com .
It’s really well written and focuses on how WebAssembly is written by teaching you to write a compiler for it. Which is honestly pretty genius.
It’s really well written and focuses on how WebAssembly is written by teaching you to write a compiler for it. Which is honestly pretty genius.
WebAssembly from the Ground Up
A book about WebAssembly — learn Wasm by building a simple compiler in JavaScript.
wasmgroundup.com
August 26, 2025 at 2:43 PM
Lately I’ve been learning more about WebAssembly fundamentals by reading this fantastic book: wasmgroundup.com .
It’s really well written and focuses on how WebAssembly is written by teaching you to write a compiler for it. Which is honestly pretty genius.
It’s really well written and focuses on how WebAssembly is written by teaching you to write a compiler for it. Which is honestly pretty genius.
The summer holidays just started here in southern Germany.
So, it's time for a ☀️ SUMMER SALE ☀️ —
Use the code SUMMER25 for a 25% discount on the book until Sept 15: wasmgroundup.com
So, it's time for a ☀️ SUMMER SALE ☀️ —
Use the code SUMMER25 for a 25% discount on the book until Sept 15: wasmgroundup.com
WebAssembly from the Ground Up
A book about WebAssembly — learn Wasm by building a simple compiler in JavaScript.
wasmgroundup.com
August 5, 2025 at 2:08 PM
The summer holidays just started here in southern Germany.
So, it's time for a ☀️ SUMMER SALE ☀️ —
Use the code SUMMER25 for a 25% discount on the book until Sept 15: wasmgroundup.com
So, it's time for a ☀️ SUMMER SALE ☀️ —
Use the code SUMMER25 for a 25% discount on the book until Sept 15: wasmgroundup.com
Wasm modules are enabled by default in the latest version of Node (v24.5.0)! 🎉
August 5, 2025 at 1:39 PM
Wasm modules are enabled by default in the latest version of Node (v24.5.0)! 🎉
Reposted by WebAssembly from the Ground Up
Pretty pleased with the ergonomics of the Wasm (macro-)assembler in @ohmjs.org.
It's built on the low-level assembler lib we created for @wasmgroundup.com, but has some nice higher-level features, including labeled breaks. I'm particularly proud of the idea to put the block label at the end. 😊
It's built on the low-level assembler lib we created for @wasmgroundup.com, but has some nice higher-level features, including labeled breaks. I'm particularly proud of the idea to put the block label at the end. 😊
July 25, 2025 at 8:00 AM
Pretty pleased with the ergonomics of the Wasm (macro-)assembler in @ohmjs.org.
It's built on the low-level assembler lib we created for @wasmgroundup.com, but has some nice higher-level features, including labeled breaks. I'm particularly proud of the idea to put the block label at the end. 😊
It's built on the low-level assembler lib we created for @wasmgroundup.com, but has some nice higher-level features, including labeled breaks. I'm particularly proud of the idea to put the block label at the end. 😊
WebAssembly Branch Hinting: From an idea to W3C standard
→ labs.leaningtech.com/blog/branch...
An interesting look at journey from an idea ("it should would be nice if Wasm supported this…") to a standardized feature.
→ labs.leaningtech.com/blog/branch...
An interesting look at journey from an idea ("it should would be nice if Wasm supported this…") to a standardized feature.
WebAssembly Branch Hinting: From an idea to W3C standard
Around a month ago, the WebAssembly Community Group voted to advance the [Branch Hinting proposal](https://github.com/WebAssembly/branch-hinting) to phase 4, effectively recommending its addition to the standard, and the Working Group formally added it to the standard by voting it into phase 5 last week.
This was a big achievement for me, as the proposal Champion from its inception almost 4 years ago, and for [Leaning Technologies](https://leaningtech.com) (my company), who sponsored this work.
In this article I will explain the purpose of the proposal, and the journey that brought it from idea to standard.
labs.leaningtech.com
July 23, 2025 at 5:07 PM
WebAssembly Branch Hinting: From an idea to W3C standard
→ labs.leaningtech.com/blog/branch...
An interesting look at journey from an idea ("it should would be nice if Wasm supported this…") to a standardized feature.
→ labs.leaningtech.com/blog/branch...
An interesting look at journey from an idea ("it should would be nice if Wasm supported this…") to a standardized feature.
Reposted by WebAssembly from the Ground Up
We're still looking for more sponsors! If you or your company can help fund this effort: github.com/sponsors/pd...
Since 2017, my work on Ohm has been unpaid. Your sponsorship helps the project be sustainable, ensuring that I can maintain and improve Ohm for many years to come!
Since 2017, my work on Ohm has been unpaid. Your sponsorship helps the project be sustainable, ensuring that I can maintain and improve Ohm for many years to come!
Sponsor @pdubroy on GitHub Sponsors
I'm the lead developer of Ohm (ohmjs.org), a user-friendly parsing toolkit for JavaScript and TypeScript. I also created the Ohm Editor, and the interactive visualization for understanding and ...
github.com
July 14, 2025 at 5:42 PM
We're still looking for more sponsors! If you or your company can help fund this effort: github.com/sponsors/pd...
Since 2017, my work on Ohm has been unpaid. Your sponsorship helps the project be sustainable, ensuring that I can maintain and improve Ohm for many years to come!
Since 2017, my work on Ohm has been unpaid. Your sponsorship helps the project be sustainable, ensuring that I can maintain and improve Ohm for many years to come!
Reposted by WebAssembly from the Ground Up
acm queue issue out on webassembly, with articles by @littledan.dev, conrad watt, ben titzer, & yours truly: queue.acm.org/issuedetail....
WebAssembly - ACM Queue
queue.acm.org
July 8, 2025 at 7:55 AM
acm queue issue out on webassembly, with articles by @littledan.dev, conrad watt, ben titzer, & yours truly: queue.acm.org/issuedetail....
A good question we were asked recently —
"Does V8 optimize WebAssembly similar to JS?"
The latest post on the V8 blog, "Speculative Optimizations for WebAssembly using Deopts and Inlining", provides some answers!
v8.dev/blog/wasm-s...
"Does V8 optimize WebAssembly similar to JS?"
The latest post on the V8 blog, "Speculative Optimizations for WebAssembly using Deopts and Inlining", provides some answers!
v8.dev/blog/wasm-s...
June 26, 2025 at 7:58 AM
A good question we were asked recently —
"Does V8 optimize WebAssembly similar to JS?"
The latest post on the V8 blog, "Speculative Optimizations for WebAssembly using Deopts and Inlining", provides some answers!
v8.dev/blog/wasm-s...
"Does V8 optimize WebAssembly similar to JS?"
The latest post on the V8 blog, "Speculative Optimizations for WebAssembly using Deopts and Inlining", provides some answers!
v8.dev/blog/wasm-s...
Reposted by WebAssembly from the Ground Up
Here's what I've been working on the past couple months! It's been a lot of fun, and the prototype shows some promising perf improvements (~10x).
It's still about 8–10 weeks of effort to productionize this. If you or your company can help fund that work, please get in touch!
It's still about 8–10 weeks of effort to productionize this. If you or your company can help fund that work, please get in touch!
Ever wanted to use Ohm from another language? Go, Python, Rust?
See the brand new, experimental support for compiling Ohm grammars to Wasm: github.com/ohmjs/ohm/d...
It wasn't the main goal, but it also appears to be a perf win — parsing is about 10x faster on real-world grammars (e.g. ES5).
See the brand new, experimental support for compiling Ohm grammars to Wasm: github.com/ohmjs/ohm/d...
It wasn't the main goal, but it also appears to be a perf win — parsing is about 10x faster on real-world grammars (e.g. ES5).
June 23, 2025 at 2:35 PM
Here's what I've been working on the past couple months! It's been a lot of fun, and the prototype shows some promising perf improvements (~10x).
It's still about 8–10 weeks of effort to productionize this. If you or your company can help fund that work, please get in touch!
It's still about 8–10 weeks of effort to productionize this. If you or your company can help fund that work, please get in touch!
Reposted by WebAssembly from the Ground Up
Oliver Medhurst talks about Porffor and compiling JavaScript ahead-of-time at the Web Engines Hackfest 2025 @goose.icu www.youtube.com/watch?v=RU5N...
Oliver Medhurst - Compiling JavaScript ahead-of-time
YouTube video by Web Engines Hackfest
www.youtube.com
June 16, 2025 at 7:03 AM
Oliver Medhurst talks about Porffor and compiling JavaScript ahead-of-time at the Web Engines Hackfest 2025 @goose.icu www.youtube.com/watch?v=RU5N...
What's the opposite of a cautionary tale?
Well, yeah…this is one of those. Learn #wasm and you might just have a helluva lot of fun.
Well, yeah…this is one of those. Learn #wasm and you might just have a helluva lot of fun.
Ok ok this may not make a lot of sense but I am *extremely* happy to have gotten this code working!! So I feel compelled to share.
(And yes, I wrote my own macro-assembler for #wasm in JavaScript. That's how much fun I'm having, and yes I mean that sincerely.)
1/x
(And yes, I wrote my own macro-assembler for #wasm in JavaScript. That's how much fun I'm having, and yes I mean that sincerely.)
1/x
May 16, 2025 at 2:57 PM
What's the opposite of a cautionary tale?
Well, yeah…this is one of those. Learn #wasm and you might just have a helluva lot of fun.
Well, yeah…this is one of those. Learn #wasm and you might just have a helluva lot of fun.