Research

WebAssembly Research Center

Current WRC Projects

The Wizard Engine

What is the future of software virtual machines? A key piece of Wasm technology is the software virtual machine (or engine) that runs WebAssembly code. We are developing a new research engine to serve as a vehicle for teaching, studying and extending WebAssembly by students and researchers across the world.

Low-Level Interfaces for WebAssembly 

What are the limits of WebAssembly’s applications? This project and its subprojects investigate new interfaces for WebAssembly that have new and interesting security properties, yet allow a new class of applications by allowing Wasm code to drive new kinds of devices and software layers. 

Benchmarking WebAssembly 

How is my Wasm doing? This set of projects looks at benchmarking Wasm applications and engines to understand their performance characteristics and help Wasm programs and engines achieve better performance characteristics in multiple dimensions. 

Instrumentation for WebAssembly 

What is going on in this Wasm program? This set of projects looks at mechanisms and tools for studying how Wasm code executes in many different environments, feeding into other projects such as performance optimization, testing and fuzzing. 

Applying WebAssembly to Cyber-Physical and Real-Time Distributed Systems 

With heterogeneous hardware; soft — and even hard — real-time constraints, distributed system considerations and software-fault-isolation requirements, can WebAssembly improve the robustness and performance of cyber-physical systems? This project takes a look at several industrial applications of Wasm in these settings. 

Fault-Injection for Distributed WebAssembly Applications 

How can we make distributed programming easier? With Wasm as the basis of many different cloud, edge and networked applications, this project looks to leverage this common bottom layer to inject faults and test applications that are otherwise notoriously hard to debug. 

New Techniques To Improve Dynamic Languages on Wasm 

Yeah, but does it run Python? While a large and growing number of statically typed languages run well on Wasm today, dynamic languages still lag in performance and ergonomics. This project looks at how dynamic language implementations on Wasm can be improved. 

New Features for WebAssembly 

Is the WebAssembly feature set complete? This project looks at what features can benefit the Wasm ecosystem by bringing in new languages, improving existing languages or improving system integration.

Related Projects

POSE: Phase I: Toward a WebAssembly Research Ecosystem

Ben Titzer (PI), Heather Miller

The goal of this research is to create a flourishing open source ecosystem centered around Wasm research with broader impacts of accelerating Wasm development and standardization and increasing the platform's usefulness to researchers.

National Science Foundation, TI2229731 (Read abstract.)

RINGS: Language-Agnostic Resilience Engineering at the Edge With WebAssembly

Heather Miller (PI), Ben Titzer, Claire Le Goues

This project uses an approach to full-stack resilience engineering to enable secure, effective and performant edge computation in NextG systems, focusing on and building on WebAssembly, proposing a robust, performant and secure experimental runtime engine with support for instrumentation and rapid prototyping that will facilitate fault injection and program repair.

National Science Foundation, CNS2148301 (Read abstract.)

RINGS: Bumblebee: A Neural Network Transformer Architecture for Summarization and Prediction in Interactive XR Applications

Anthony Rowe (PI), Jeffrey Bilmes

The goal of this project is to develop a fast, resilient and adaptive general neural network transformer-based architecture for interactive XR applications using machine learning to model, historically summarize, adapt to, predict, and then utilize streaming time-series data.

National Science Foundation, CNS2148367 (Read abstract.)

Silverline: Distributed Runtime for WebAssembly

Anthony Rowe, et. al.

Silverline leverages a common execution runtime that supports isolation and resource monitoring across compute classes — from small embedded devices to edge servers — to manage workloads spanning the cloud and edge.

Wireless Sensing and Embedded Systems Lab (Read abstract.)