Bring F# to WebAssembly — and beyond.
fsharp-wasm is an experimental project to build a modern:
👉 F# → WebAssembly toolchain
Including:
- Compiler pipeline
- WASM code generation
- Runtime integration
- Tooling & developer experience
WebAssembly is becoming the universal runtime for:
- 🌍 Web applications
- ⚡ Edge computing
- ☁️ Cloud-native systems
F# brings:
- strong typing
- functional programming
- safety + expressiveness
👉 Combining both unlocks a powerful new stack.
This project aims to cover:
- F# → WASM compilation
- Runtime bindings (browser / node / standalone)
- CLI & build tooling
- Example applications
This is not just a compiler.
It’s a foundation for:
- next-gen web platforms
- edge-native applications
- AI/data pipelines
- low-code / no-code systems
👉 Long-term goal: Enable declarative, high-level system design compiled to WASM
- fsharp-wasm: The core compiler (Fable-based) targeting WasmGC.
- fsharp-wasm-runtime: Lightweight helper functions for WasmGC interop.
Traditional Wasm compilation requires shipping a garbage collector in the binary. WasmGC allows us to use the browser's native GC, resulting in:
- 📉 Smaller binaries (KB instead of MB)
- ⚡ Faster startup times
- 🤝 Better integration with the JavaScript heap
We are in an early stage — this is the best time to get involved.
Areas you can help with:
- Compiler internals
- Compiler backends (Binaryen, WAT)
- F# AST transformations
- WASM code generation
- WebAssembly performance optimization
- Runtime integration
- Tooling
- Documentation
👉 Check issues or open a discussion.
Let's make F# the first-class choice for WebAssembly development.
Early contributors don’t just fix bugs —
they shape the architecture and direction of the project.
- Use Discussions for ideas & questions
- Use Issues for bugs & features
🚧 Experimental / Early Stage
👉 https://github.com/fsharp-wasm/fsharp-wasm