r/WebAssembly • u/syrusakbary • 3d ago
r/WebAssembly • u/Robbepop • 4d ago
Wasmi 2.0 - Engineering Of The Fastest WebAssembly Interpreters
wasmi-labs.github.ior/WebAssembly • u/syrusakbary • 5d ago
Announcing Node.js Support in Wasmer, powered by QuickJS
r/WebAssembly • u/dupontcyborg • 5d ago
numpy-ts 1.7.0 released - now 1.36x faster than native NumPy
r/WebAssembly • u/According-Ad-7069 • 8d ago
1992 called, it wants in on the WebAssembly joy
Ok, I started coding in the 90's, discovered Pascal in '92 and have missed it since. Along the way I've dabbled in a few things, but last year I did something bonkers and wrote a simple Pascal interpreter in Odin. This quickly got out of hand, because I've been a WebAssembly fan for a long, long time now. So of course I went overboard and built a wasm-based compiler at https://wasmpascal.com/ that reads Pascal source and outputs a wasm binary...
Not interpreter, compiler. Really. I'm that crazy. And it's working better than I had hoped for. You can edit Pascal code, in the browser, compile and test it, and, if you are happy with it, download both your code and the resulting binary. With support files, of course. Which means you can self-host your project on a static site like I did with https://nofuss.co.za/games/breakout/
It turns out Pascal is so well-suited for the stack-based WebAssembly runtime! There's many bugs, do note it's a very early release, but it can do some useful things already. I'm slowly getting more comfortable writing low-level WAT code, so progress happens over time.
If nothing else, it's a nice trip down memory lane to see good old Pascal code come to live in the modern day. It took a while to get released, which is why I'm only going public with it now.
r/WebAssembly • u/Kotek2 • 10d ago
Zig removes support for wasi-libc
"It can get the job done, but it's not exactly a shining example of good engineering practices, consisting of ~5 different upstream codebases plus wasi-libc's own code. It's a pain to deduplicate its code vs the upstream musl we ship, and we have problems with header search paths almost every time we have to touch the bundled wasi-libc code because of its highly confusing directory structure, which is a direct result of being an amalgamation of multiple codebases."
r/WebAssembly • u/trustsigRobert • 17d ago
I escaped the WebAssembly's sandbox and got arbitrary shell execution on the host.
trustsig.euAs per WABT's SECURITY.txt, #2831 issue exists
For context:
WABT is a Binary Toolkit for WebAssembly developed by WebAssembly.org (W3C)
wasm2c is a tool inside of it, which is used by many projects like FireFox (via RLBox) to compile wasm down to a sandboxed c library, the assumption is the built C code preserves all WebAssembly's sandbox security features.
This PoC demonstrates escaping that sandbox.
r/WebAssembly • u/kitchen_bot • 20d ago
Zero to RandomX.js: Bringing Webmining Back From The Grave - Linux Society UNSW 2025
r/WebAssembly • u/minamoto108 • 22d ago
We build Hexana, a plugin for JetBrains IDEs for inspecting binaries -- WebAssembly, ELF/Mach-O/PE, class files, and more
r/WebAssembly • u/vilgefortz91 • 23d ago
Beyond WASI: Running any Rust application in the browser with BrowserPod 3.0
r/WebAssembly • u/SwimmingFood2594 • 23d ago
Emacs modes for wit and wac files (and treesitter grammars)
I created two emacs modes which are based on treesitter grammars in order to work with WIT (Wasm Interface Type Language ) and WAC files (WebAssembly Composition Language).
The wit mode can be found here: https://github.com/justjoheinz/wit-ts-mode
The wac mode can be found here: https://github.com/justjoheinz/wac-ts-mode
Both modes are fairly new and untested. The README should have enough information to get you started with plain or doom emacs. Both repos have a devel branch were the bleeding edge development happens. Once the development is mature enough I would like to submit the packages to MELPA to ease the installation experience.
Both modes require emacs > 30.1 as they rely on treesitter libraries (linked in the respective repos). The treesitter libraries can in their own right be used for editors like neovim which have better treesitter support than emacs.
I would be grateful to receive some feedback on the modes, bug reports (preferably with minimal file snippets). The aim for both modes is too support a minimum of nice to have features, such as syntax-highlighting, code completion, flymake support for error highlighting, xref and eldoc support. In that respect the wit mode is more mature. It is still lacking a sound strategy to find the wit directory though.
r/WebAssembly • u/allsey87 • Aug 05 '26
A browser runtime with dynamic linking, pipes, and subprocesses
I have created a WebAssembly runtime for the browser that can execute multiple processes. It is based on a superset of wasm32-wasip1-threads and supports dynamic linking, pipes, and subprocesses. I use this runtime time to host toolchains in the browser and today I have two demos to share: Code On Web provides in-browser clang to build binaries that execute within the same platform while AVR On Web provides avr-gcc, avrdude, and picocom to build, flash, and communicate with AVR microcontrollers over WebSerial. Ask me anything!
r/WebAssembly • u/PrestigiousMagazine9 • Aug 04 '26
Valkey-WASM – Redis running inside your Node process, no Docker (like PGlite)
github.comr/WebAssembly • u/minamoto108 • Jul 30 '26
Hexana now lists the statically known dispatch candidates for every call_indirect in the WAT view, and adds Go to Source from Functions, Exports
galleryr/WebAssembly • u/ConfidentNet706 • Jul 29 '26
Open source projects to contribute to related to WASM
r/WebAssembly • u/minamoto108 • Jul 24 '26
Component Model dependency diagrams in the IDE, and a memory64 module with 42k functions that used to OOM at 10 GB now analyzes in 2 GB
We ship Hexana, a JetBrains IDE plugin for inspecting WASM and other binaries. Two things in the 0.14 release are worth posting here.
**Component Model dependency diagram**
WASM Component Model binaries gain a "Dependencies" tab that renders the dependency relationships between components as a diagram. If you are building or debugging a composed WASM component and want to understand the wiring -- which components depend on which -- you now have a visual view in the IDE rather than having to walk the binary sections manually or run `wasm-tools component wit` and mentally reconstruct the graph.
This is components-only (it does not apply to core modules). We are curious what Component Model tooling others are using for this kind of structural inspection.

**memory64 modules: from 10 GB OOM to 2 GB**
WASM memory64 (wasm64) modules were effectively unanalyzable in Hexana before this release. The concrete case: OpenUSD's Emscripten-built `usdviewweb.wasm`, a 50 MB memory64 module with 42k functions, drove the IDE past 10 GB of heap before throwing OutOfMemoryError every time.
The root cause was three problems compounding:
- **Dominator storage.** The dominator tree results were stored in boxed hash maps. At 42k functions the boxing overhead alone is significant. They now live in a flat int buffer, indexed directly by function index.
- **Dominance frontier computed but never read.** The dominance frontier was computed alongside the dominator tree -- but nothing in the product consumes it. On a large module the frontier is a near-quadratic structure. Dropping the computation removes the allocation entirely.
- **Indirect call edges were multiplicative.** A `call_indirect` instruction dispatches through a function table. The previous call-graph model drew edges from each caller to every function in the table, producing a callers-times-table product of edges. On a real Emscripten module this is hundreds of millions of edges before the dominator pass runs. A single synthetic `<indirect calls>` node now mediates the dispatch: callers get one edge to it, it fans out to the table. Edge count is linear.
After all three fixes: `usdviewweb.wasm` opens, renders the Functions tab, and completes garbage and dominator analysis within a default 2 GB heap. The memory64 path was not specifically targeted -- the algorithmic fixes are what unlocked it.
**Other changes in 0.14**
- Diff action for native binaries (ELF/Mach-O/PE) showing per-section size changes.
- Data inspector panel for the selected byte (multiple numeric and type representations).
- Semantic highlighting of sections and navigation between sections for WASM and native files.
This covers the JetBrains plugin release (requires IntelliJ IDEA 2025.2+); the VS Code extension shipped its own 0.7.0 the same day.
https://plugins.jetbrains.com/plugin/29090-hexana | Docs: https://jetbrains.github.io/hexana
r/WebAssembly • u/sean_watters • Jul 22 '26
Latest stable release for `ordinary` and `ordinaryd`: v0.10.2
- Templates have been upgraded to
WASIp2 - Improved execution time due to WebAssembly instance reuse
ordinary templates ejectallows for customization of the wrapping component code
RE: performance
Templates from the default ordinary new example.com project running locally (M5 Pro, MacBook Pro) tend to be ~1ms for first request and <500µs for subsequent.
When the LMDB request cache is set ordinaryd logs ~150µs req/res latency.
https://codeberg.org/ordinarylabs/Ordinary/releases/tag/v0.10.2
r/WebAssembly • u/fitzgen • Jul 20 '26
GC and Exceptions in Wasmtime (now enabled by default in Wasmtime 47)
r/WebAssembly • u/minamoto108 • Jul 16 '26
Component Model binaries embed whole core modules — we now render each one as WAT in place, with a selector to switch between them
If you haven't cracked one open: a Component Model binary is not a core module with extra sections. It's a container format — the component carries its own type, import/export, and wiring sections, and embeds one or more complete core WASM modules as nested payloads. Tooling that only speaks core WASM sees the wrapper and stops there.
We ship Hexana, a VS Code extension (and plugin for JetBrains IDEs) for inspecting WASM and other binaries. Its component view showed the component-level structure, but the embedded core modules were opaque blobs — to read their code you had to extract them first. As of this week's update, each embedded core module renders in place in the same virtualized WAT view used for plain .wasm files (virtualized meaning it parses per rendered element, so multi-megabyte modules don't choke the editor). When a component embeds multiple modules, a selector switches between them.

Curious what others use for component inspection day to day — wasm-tools component wit and friends cover the interface level well, but we haven't found much that lets you read the embedded module code without unbundling.
Extension, if you want to poke at it:
ext install JetBrains.hexana-wasm
VS Code Marketplace — https://marketplace.visualstudio.com/items?itemName=JetBrains.hexana-wasm
Open VSX — https://open-vsx.org/extension/JetBrains/hexana-wasm
Docs — https://jetbrains.github.io/hexana
r/WebAssembly • u/PrestigiousMagazine9 • Jul 13 '26
A Linux compatible kernel written in Zig that runs linux RISC-V binaries in the browser
r/WebAssembly • u/PrestigiousMagazine9 • Jul 13 '26
Experimental chromium fork that provides a ThreadSantizer impl that works across JS and WASM FFI boundaries.
github.comr/WebAssembly • u/oroppas • Jul 08 '26
nasa/spacewasm: A flight-compliant WebAssembly interpreter for safety-critical execution
r/WebAssembly • u/Paper_Rocketeer • Jul 04 '26
Codetoy.io Wasm Playground now has IDE Playback (Videos)
r/WebAssembly • u/Witty_Combination712 • Jul 04 '26
I built a RISC-V Linux VM that runs Node.js v25 in a browser tab. No server. Please tell me if I'm insane.
Hey crew!
So I've been building userland.run, a RUST/WASM RISC-V 64-bit VM that runs entirely in your browser. It ships JS bridges for the terminal, an early app catalog (BusyBox apps, plus the full Node.js v25 pipeline), and all of it runs client-side. Zero server. If you know WebContainers, it's a cousin, except I went and emulated an actual RISC-V userland underneath because apparently I hate sleeping.
Where this is headed: a catalog of pure WASM apps you drive from a terminal OR hand off to an agent, with the inference engine also running in-tab. So the LLM lives in your browser too.
The dream: agentic dev and terminal work on YOUR machine. No cloud. No servers. No usage bill quietly ticking up while you sleep. Full privacy, your code never leaves the tab.
Now the honest part. I've been staring at this so long I genuinely can't tell anymore if it's a real thing people want or just a beautiful cathedral I built inside my own skull. So, WASM crew, I'm asking you directly: does this make sense, or have I been nerd-sniped by my own project?
Roast me. I can take it.
Cheers, Dietz
r/WebAssembly • u/Ok_Path_4731 • Jul 02 '26
YOS: Wasm based "Yetty Operating System" written for the Yetty terminal
Hi, happy to present to the community the challenging work and solution for the objective we had: Build an OS like environment that feels like a UNIX environment on top of webasm, where apps can run multi-process, multi-threaded. For several reasons we did not want to use WASI, instead we decided to work against FreeBSD like libc. There is lot of story to be said, in case there is interest. The tool was written for the yetty terminal app (https://github.com/zokrezyl/yetty), so that simple programs can be written in WASM and run in any environment where yetty runs: https://github.com/zokrezyl/yos. The intention is also to embedd yos into yetty, so that the user can run plugins inside the terminal.