WebAssembly language support matrix
This support matrix lists the programming languages that can be compiled to WebAssembly.
It also specifies if you can compile the language to run in the browser, in other non-browser environments, or in a WASI environment. Spin, SpinKube, and Akamai Functions require WASI support. Any language supported for WASI should be supported on the Akamai Functions. The Spin SDK indicates that there is additional libraries available for Spin.
For more information about technologies such as WASI, Wagi, and Spin go to the Related standards topic in this guide.
Support details
Review the for descriptions for each of the language support categories.
- Core. An implementation of WebAssembly 1.0 is available.
- Browser. At least one browser implementation is available.
- WASI. The language supports at least Preview 1 of the WASI proposal.
- Spin SDK. A Spin SDK is available for the language.
- Anything with WASI or Spin SDK support runs on Fermyon Cloud, Spin, and Fermyon Platform.
We're often asked which languages are best for production-grade WebAssembly. We suggest Rust, JavaScript/TypeScript, Python, and Go.
WebAssembly support for top 20 languages
Review the Wasm support for the top 20 programming languages as ranked by RedMonk.
| Language | Core | Browser | WASI | Spin SDK |
|---|---|---|---|---|
| JavaScript | ✓ | ✓ | ✓ | ✓ |
| Python | ✓ | In progress | ✓ | ✓ |
| Java | ✓ | ✓ | ✓ | In progress |
| PHP | ✓ | ✓ | ✓ | ✗ |
| CSS | N/A | N/A | N/A | N/A |
| C# and .NET | ✓ | ✓ | ✓ | ✓ |
| C++ | ✓ | ✓ | ✓ | ✗ |
| TypeScript | ✓ | In progress | ✗ | ✓ |
| Ruby | ✓ | ✓ | ✓ | ✗ |
| C | ✓ | ✓ | ✓ | ✗ |
| Swift | ✓ | ✓ | ✓ | In progress |
| R | ✗ | ✓ | ✗ | ✗ |
| Objective-C | ? | ✗ | ✗ | ✗ |
| Shell | N/A | N/A | N/A | N/A |
| Scala (JVM) | ✓ | ✓ | ✓ | In progress |
| Scala (native) | In progress | ✗ | ✗ | ✗ |
| Go | ✓ | ✓ | ✓ | ✓ |
| PowerShell | ✗ | ✗ | ✗ | ✗ |
| Kotlin (JVM) | ✓ | ✓ | ✓ | In progress |
| Kotlin (Wasm) | In progress | ✓ | ✓ | ✗ |
| Rust | ✓ | ✓ | ✓ | ✓ |
| Dart | ✓ | ✓ | ip | ✗ |
WebAssembly Specific Languages
| Language | Browser | CLI | WASI | Spin SDK |
|---|---|---|---|---|
| AssemblyScript | ✓ | ✓ | ✓ | ✗ |
| Grain | ✓ | ✓ | ✓ | ✗ |
| Motoko | ✓ | ✓ | ✓ | ✗ |
Other notable languages
These languages, though not in the top 20, enjoy broad use and offer some degree of WebAssembly support.
The WebAssembly Language Guide is located in a public GitHub project. If you find errors, want to make additions, or have further corrections for us, the issue queue is a great place to discuss.
Updated 27 days ago
