This guide tracks support for compiling a language to WebAssembly. It is organized into three sections: Support for the top 20 languages, WebAssembly-specific languages, and other notable languages. We track whether the language can be compiled to run in the browser, in other non-browser environments, and in a WASI environment. In the detail page for each language, we do our best to not only state the current level of support, but also point to an array of useful resources.

For each environment, we use the following icons to indicate a level of support:

  • βœ… Usable
  • ⏳ In progress
  • ❌ Not implemented
  • N/A Not applicable

The Fermyon Platform requires WASI support. Any language that has a βœ… for WASI should be supported on the Fermyon Platform.

We are often asked which languages are best supported for production-grade WebAssembly. We suggest C/C++, Rust, and AssemblyScript.

WebAssembly Support in Top 20 Languages

This reports on the top 20 languages from RedMonk’s ranking. Some languages, like CSS, PowerShell, and β€œShell”, don’t really have a meaningful expression in Wasm. However, we have left them here for completeness.

LanguageBrowserOtherWASINotes
JavaScript⏳⏳⏳
Pythonβ³βœ…βœ…
Javaβœ…βœ…βŒ
PHPβœ…βŒβŒ
CSSN/AN/AN/A
C++βœ…βœ…βœ…
C# and .NETβœ…βœ…βœ…Covers .NET as well
TypeScript❌⏳❌Consider AssemblyScript
Rubyβœ…βœ…βœ…
Cβœ…βœ…βœ…
Swiftβœ…βœ…βœ…
Rβœ…βŒβŒ
Objective-C❌?❌
ShellN/AN/AN/ANot a specific language
Scala (native)❌⏳❌See Java
Goβœ…βœ…βœ…Via Go and TinyGo
PowerShell❌❌❌This is unlikely to change.
Kotlinβœ…β³β³
Rustβœ…βœ…βœ…
Dart⏳❌❌

WebAssembly Specific Languages

LanguageBrowserCLIWASINotes
AssemblyScriptβœ…βœ…βœ…
Grainβœ…βœ…βœ…
Motokoβœ…βœ…βœ…

Other Notable Languages

These languages enjoy broad use (though perhaps not in the top 20) and have at least some degree of WebAssembly Support

LanguageBrowserCLIWASINotes
COBOLβ³βœ…β³
Erlang (BEAM)⏳⏳⏳
Haskellβœ…βœ…βœ…
Lisp⏳⏳⏳
Luaβœ…βŒβŒ
Perlβœ…βŒβŒ
Zigβœ…βœ…βœ…

Updates and Additions

If you find an error or are interested in an addition, let us know.

Interested in learning more?

Get Updates