Effect Handlers for WebAssembly

Community

About

WasmFX started as a subsidiary project of the UKRI funded project effect handler oriented programming (EHOP) (MR/T043830/1), which is led by Sam Lindley at The University of Edinburgh, United Kingdom. Nowadays, WasmFX is a standalone project graciously sponsored by the EHOP project between February 2021 - January 2025.

Resources

WasmFX is an open source project being developed in the public domain.

Research papers

WasmFX is an active research project. Thus far, we have published the following papers.

  • Continuing WebAssembly with Effect Handlers, Luna Phipps-Costin, Andreas Rossberg, Arjun Guha, Daan Leijen, Daniel Hillerström, KC Sivaramakrishnan, Matija Pretnar, Sam Lindley, Proc. ACM Program. Lang. 7(OOPSLA2), 2023.

Presentations

Submitting feedback and issues

We welcome community and developer feedback on all aspects of WasmFX, including the high-level design, binary format, developer experience, and browser implementations.

Please contribute your feedback or issues in the following forums:

Contributing to WasmFX

We welcome external contributions to WasmFX. There are multiple ways to contribute to the project.

Design and discussions

A useful and fairly lightweight way to contribute is by joining the discussions about stack switching in WebAssembly on the official stack switching working group.

Relevant resources:

Reference interpreter implementation

The reference interpreter implementation of WasmFX is led by Daniel Hillerström and Andreas Rossberg. As of writing, the reference interpreter implements only the core of the typed continuations proposal, we have yet to implement the various extensions.

Relevant resources:

Wasm-tools and Wasmtime implementations

We are interested in Wasm engine implementations of WasmFX.

Currently, we are working on implementing WasmFX in wasm-tools and wasmtime — the former being a toolbox for manipulating Wasm modules and latter being a production-grade engine for Wasm. The implementation effort is led by Daniel Hillerström and Luna Phipps-Costin. There is a fair amount of engineering work yet to be done, as the typed continuations proposal depends on the typed function references and exception handling proposals, both of which are yet to be implemented in wasm-tools and wasmtime.

Relevant resources:

Toolchains

We are interested in toolchains to compile programs that can take advantage of the WasmFX feature set of Wasm. Currently, Daniel Hillerström and Luna Phipps-Costin are building a toolchain that compiles effect handlers programs written in Links to Wasm via Jankscripten.

Relevant resources: