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/
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.
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.
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/)
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...
Wireworld is a kind of cellular automaton, similar to Conway's Game of Life.
Wasm4-Wireworld is an implementation of Wireworld WASM-4 "fantasy console" using Hoot, a Scheme-to-Wasm compiler: spritely.institute/news/hoot-wi...
Wasm4-Wireworld is an implementation of Wireworld WASM-4 "fantasy console" using Hoot, a Scheme-to-Wasm compiler: spritely.institute/news/hoot-wi...
April 25, 2025 at 3:29 PM
Wireworld is a kind of cellular automaton, similar to Conway's Game of Life.
Wasm4-Wireworld is an implementation of Wireworld WASM-4 "fantasy console" using Hoot, a Scheme-to-Wasm compiler: spritely.institute/news/hoot-wi...
Wasm4-Wireworld is an implementation of Wireworld WASM-4 "fantasy console" using Hoot, a Scheme-to-Wasm compiler: spritely.institute/news/hoot-wi...
Great article by @saelo.bsky.social about the V8 sandbox: v8.dev/blog/sandbox
"the overall construction is therefore not unlike the sandboxing model used by WebAssembly"
"the overall construction is therefore not unlike the sandboxing model used by WebAssembly"
April 17, 2025 at 8:27 AM
Great article by @saelo.bsky.social about the V8 sandbox: v8.dev/blog/sandbox
"the overall construction is therefore not unlike the sandboxing model used by WebAssembly"
"the overall construction is therefore not unlike the sandboxing model used by WebAssembly"
Just published a new release of the book with some minor updates:
• Added "debugging" section to About the Code
• Appendix now has all remaining instructions from the 1.0 spec
• (PDF) Fixed some code blocks which didn't show full contents
+More! It's all in the changelog.
• Added "debugging" section to About the Code
• Appendix now has all remaining instructions from the 1.0 spec
• (PDF) Fixed some code blocks which didn't show full contents
+More! It's all in the changelog.
April 10, 2025 at 3:43 PM
Just published a new release of the book with some minor updates:
• Added "debugging" section to About the Code
• Appendix now has all remaining instructions from the 1.0 spec
• (PDF) Fixed some code blocks which didn't show full contents
+More! It's all in the changelog.
• Added "debugging" section to About the Code
• Appendix now has all remaining instructions from the 1.0 spec
• (PDF) Fixed some code blocks which didn't show full contents
+More! It's all in the changelog.
Something handy for anyone who's trying to debug generated wasm…
A PR of ours was merged into the wabt repo yesterday. In the JS version of wasm2wat, you can now opt to skip validation — just like the `--no-check` option in the CLI.
Try it out here: webassembly.github.io/wabt/demo/w...
A PR of ours was merged into the wabt repo yesterday. In the JS version of wasm2wat, you can now opt to skip validation — just like the `--no-check` option in the CLI.
Try it out here: webassembly.github.io/wabt/demo/w...
April 10, 2025 at 8:47 AM
Something handy for anyone who's trying to debug generated wasm…
A PR of ours was merged into the wabt repo yesterday. In the JS version of wasm2wat, you can now opt to skip validation — just like the `--no-check` option in the CLI.
Try it out here: webassembly.github.io/wabt/demo/w...
A PR of ours was merged into the wabt repo yesterday. In the JS version of wasm2wat, you can now opt to skip validation — just like the `--no-check` option in the CLI.
Try it out here: webassembly.github.io/wabt/demo/w...
Here's a peek inside the book. You can also read a few sample chapters here: wasmgroundup.com/book/content...
March 12, 2025 at 4:40 PM
Here's a peek inside the book. You can also read a few sample chapters here: wasmgroundup.com/book/content...
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. 👇
March 10, 2025 at 1:19 PM
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. 👇
With the official launch of the book being next week, we figured it's about time we wrote a Conclusion chapter 😅
Lots more small tweaks & improvements coming this week…
Lots more small tweaks & improvements coming this week…
February 24, 2025 at 2:54 PM
With the official launch of the book being next week, we figured it's about time we wrote a Conclusion chapter 😅
Lots more small tweaks & improvements coming this week…
Lots more small tweaks & improvements coming this week…
Just published another update to the book: a draft of our last technical chapter, "Odds & Ends". 🎉
It covers a few features that we didn't have room for in the main track of the book: global variables, tables, and the element section.
It covers a few features that we didn't have room for in the main track of the book: global variables, tables, and the element section.
February 14, 2025 at 2:30 PM
Just published another update to the book: a draft of our last technical chapter, "Odds & Ends". 🎉
It covers a few features that we didn't have room for in the main track of the book: global variables, tables, and the element section.
It covers a few features that we didn't have room for in the main track of the book: global variables, tables, and the element section.
Happy Friday! We've just published a draft of the FINAL technical chapter of the book.
It's called "What Makes WebAssembly Safe?" and we think you're going to enjoy it.
It's called "What Makes WebAssembly Safe?" and we think you're going to enjoy it.
January 31, 2025 at 3:51 PM
Happy Friday! We've just published a draft of the FINAL technical chapter of the book.
It's called "What Makes WebAssembly Safe?" and we think you're going to enjoy it.
It's called "What Makes WebAssembly Safe?" and we think you're going to enjoy it.
Nice to see that @moonbitlang.bsky.social is continuing to make progress!
MoonBit is a new, Wasm-native programming language with a syntax similar to Rust (although it has a GC): docs.moonbitlang.com/en/latest/
MoonBit is a new, Wasm-native programming language with a syntax similar to Rust (although it has a GC): docs.moonbitlang.com/en/latest/
January 24, 2025 at 12:25 PM
Nice to see that @moonbitlang.bsky.social is continuing to make progress!
MoonBit is a new, Wasm-native programming language with a syntax similar to Rust (although it has a GC): docs.moonbitlang.com/en/latest/
MoonBit is a new, Wasm-native programming language with a syntax similar to Rust (although it has a GC): docs.moonbitlang.com/en/latest/
SpiderMonkey WASI demo — the SpiderMonkey JS engine, compiled to WebAssembly, running in the browser
→ mozilla-spidermonkey.github.io/sm-wasi-demo/
→ mozilla-spidermonkey.github.io/sm-wasi-demo/
January 18, 2025 at 7:12 PM
SpiderMonkey WASI demo — the SpiderMonkey JS engine, compiled to WebAssembly, running in the browser
→ mozilla-spidermonkey.github.io/sm-wasi-demo/
→ mozilla-spidermonkey.github.io/sm-wasi-demo/
Love this idea!
WebAssembly Wizardry: "Tiny programming challenges designed for learning about WebAssembly by writing it by hand."
→ github.com/danprince/w...
WebAssembly Wizardry: "Tiny programming challenges designed for learning about WebAssembly by writing it by hand."
→ github.com/danprince/w...
December 28, 2024 at 10:29 AM
Love this idea!
WebAssembly Wizardry: "Tiny programming challenges designed for learning about WebAssembly by writing it by hand."
→ github.com/danprince/w...
WebAssembly Wizardry: "Tiny programming challenges designed for learning about WebAssembly by writing it by hand."
→ github.com/danprince/w...
Hello! We're looking for 1-2 people **who've already bought the book but haven't yet started** and are interesting in working through the first 1-2 chapters LIVE on a video call with me.
Interested? Reply here or to the post on the #announcements channel in the book's Discord.
Interested? Reply here or to the post on the #announcements channel in the book's Discord.
December 21, 2024 at 12:56 PM
Hello! We're looking for 1-2 people **who've already bought the book but haven't yet started** and are interesting in working through the first 1-2 chapters LIVE on a video call with me.
Interested? Reply here or to the post on the #announcements channel in the book's Discord.
Interested? Reply here or to the post on the #announcements channel in the book's Discord.
This is the final chapter in the main part of the book. That means…we're almost done!
With today's release, we've also removed draft status from Chap. 7–9. Early next year, we'll be releasing the final chapter, a deep dive on what makes WebAssembly "safe".
And then…launch! 🚀
With today's release, we've also removed draft status from Chap. 7–9. Early next year, we'll be releasing the final chapter, a deep dive on what makes WebAssembly "safe".
And then…launch! 🚀
December 16, 2024 at 2:37 PM
This is the final chapter in the main part of the book. That means…we're almost done!
With today's release, we've also removed draft status from Chap. 7–9. Early next year, we'll be releasing the final chapter, a deep dive on what makes WebAssembly "safe".
And then…launch! 🚀
With today's release, we've also removed draft status from Chap. 7–9. Early next year, we'll be releasing the final chapter, a deep dive on what makes WebAssembly "safe".
And then…launch! 🚀
Hello Wasmites —
We've got a big update for you today, just in time for the holidays! It's a draft of Chapter 10: Arrays and Strings. 🎉
This is definitely one of the most technically challenging chapters of the book…but we think you're going to like it!
We've got a big update for you today, just in time for the holidays! It's a draft of Chapter 10: Arrays and Strings. 🎉
This is definitely one of the most technically challenging chapters of the book…but we think you're going to like it!
December 16, 2024 at 2:37 PM
Hello Wasmites —
We've got a big update for you today, just in time for the holidays! It's a draft of Chapter 10: Arrays and Strings. 🎉
This is definitely one of the most technically challenging chapters of the book…but we think you're going to like it!
We've got a big update for you today, just in time for the holidays! It's a draft of Chapter 10: Arrays and Strings. 🎉
This is definitely one of the most technically challenging chapters of the book…but we think you're going to like it!
It's really good news for dynamic languages. WasmGC is now supported in all the major browsers and JS runtimes.
December 12, 2024 at 11:49 AM
It's really good news for dynamic languages. WasmGC is now supported in all the major browsers and JS runtimes.
Big news! Safari 18.2 is out, with support for WasmGC and tail calls: webkit.org/blog/16301/...
December 12, 2024 at 11:49 AM
Big news! Safari 18.2 is out, with support for WasmGC and tail calls: webkit.org/blog/16301/...
Turns out there's a lot of stuff to cover before we can print to the console.
- Building an instantiating modules
- Defining functions
- Importing functions
- Linear memory
etc.
Yes, we like doing things the hard way.
- Building an instantiating modules
- Defining functions
- Importing functions
- Linear memory
etc.
Yes, we like doing things the hard way.
December 11, 2024 at 2:51 PM
Turns out there's a lot of stuff to cover before we can print to the console.
- Building an instantiating modules
- Defining functions
- Importing functions
- Linear memory
etc.
Yes, we like doing things the hard way.
- Building an instantiating modules
- Defining functions
- Importing functions
- Linear memory
etc.
Yes, we like doing things the hard way.
Many programming books start with a small program that prints "Hello, world.”
But this book is different. It's only at the end of Chapter 10 that we're ready to tackle that. 😅
Looking forward to releasing the draft very soon!
But this book is different. It's only at the end of Chapter 10 that we're ready to tackle that. 😅
Looking forward to releasing the draft very soon!
December 11, 2024 at 2:51 PM
Many programming books start with a small program that prints "Hello, world.”
But this book is different. It's only at the end of Chapter 10 that we're ready to tackle that. 😅
Looking forward to releasing the draft very soon!
But this book is different. It's only at the end of Chapter 10 that we're ready to tackle that. 😅
Looking forward to releasing the draft very soon!
Some *very* interesting Wasm-related features in the latest version of Deno (v2.1): https://docs.deno.com/runtime/reference/wasm/
• Import .wasm modules directly
• Calls into WebAssembly are type checked (!)
• Wasm modules can import .ts modules directly (!!)
• Import .wasm modules directly
• Calls into WebAssembly are type checked (!)
• Wasm modules can import .ts modules directly (!!)
November 22, 2024 at 5:19 PM
Some *very* interesting Wasm-related features in the latest version of Deno (v2.1): https://docs.deno.com/runtime/reference/wasm/
• Import .wasm modules directly
• Calls into WebAssembly are type checked (!)
• Wasm modules can import .ts modules directly (!!)
• Import .wasm modules directly
• Calls into WebAssembly are type checked (!)
• Wasm modules can import .ts modules directly (!!)
Hello, World! (from the ground up)
November 22, 2024 at 1:20 PM
Hello, World! (from the ground up)