Asterius
A Haskell to WebAssembly compiler
Asterius is a Haskell toolchain that compiles to WebAssembly, enabling Haskell programs to run in the browser and other Wasm hosts. It builds on GHC, lowers Haskell code to WebAssembly modules, and links them with a lightweight JavaScript runtime for I/O, GC interaction, and host integration. The toolchain provides commands to build and link (ahc/ahc-link), bundle assets, and target both browser and Node environments. Interop is a core focus: Haskell functions can call into JavaScript and vice versa, making it feasible to combine Haskell logic with web APIs. Asterius aims to keep as much of Haskell’s runtime model as practical while delivering the portability and startup characteristics of Wasm. By bridging GHC and WebAssembly, it opens a path to reuse Haskell libraries on the client side without switching languages.