The GHC wasm backend supports the
JSFFI
feature, allowing Haskell wasm apps to interop with JavaScript
seamlessly in the browser. This repo contains an example to
demonstrate this ability based on the
reflex frontend framework as well as an
experimental jsaddle-wasm
library under the hood.
See also:
ghc-wasm-miso-examples
Within the nix develop shell:
cd frontend
wasm32-wasi-cabal update
./build.shIf you pass additional arguments to build.sh, they will be
redirected to wasm-opt, otherwise a dev build without wasm-opt
will be performed.
The artifacts will be available in frontend/dist.
You can set up the toolchain by either:
- Using
ghc-wasm-metadirectly to set up ghc 9.10 - Using
ghcupto set up ghc 9.10 (9.10.1.20241021 or later, with TemplateHaskell support) and cabal >=3.14.
Then:
source ~/.ghc-wasm/env
cd frontend
./build.shThe examples are vendored and modified from the following projects:
- reflex-todomvc: based on https://github.com/reflex-frp/reflex-todomvc