Coming soon...
WasmBounds is a tool that elides redundant memory bounds checks in WebAssembly (Wasm) using abstract interpretation. Although runtimes for Wasm 1.0 on systems with virtual memory have been able to avoid bounds checks by using hardware guard pages, the presence of newer Wasm features (64-bit memories and single-byte page sizes) or an embedded environment generally requires software bounds checks for memory accesses, at the cost of runtime efficiency. WasmBounds shifts this runtime cost to a one-time static analysis phase. The key insight behind WasmBounds is that safe languages such as Rust and Zig already enforce bounds checks on accesses to container types. Although these safety guarantees are not immediately apparent in the compiled Wasm binary, WasmBounds can recover this information with abstract interpretation. By reasoning over a strided, sign-agnostic interval domain, WasmBounds infers the range of each memory access address and determines whether accesses are provably in bounds. Eliminating these redundant checks yields a roughly 1.2x speedup in our preliminary microbenchmark.
wBPF is a tool that I made with Max Cura, Haibib Kerim, and Ari Reid that makes programs written in arbitrary languages “safe” by using WebAssembly as an intermediary and hybridizing static analysis with dynamic instrumentation. Even after making the necessary modifications, wBPF programs run at near native speeds.
I used Rust to make a simple Raspberry Pi kernel that can run WebAssembly binaries using wasm2c and a WASI layer.
While participating in CURIS 2025, I helped to develop a text editor for WebAssembly where every incomplete program is executable and errors are closely isolated to their origin. Codillon is currently being used to teach introductory computer science to students in CS10N. I also use Codillon on a daily basis while working on my other WebAssembly projects.
Try it out! · Poster · GitHub