Emscripten
Native code compiled to WebAssembly
What it does
Emscripten uses LLVM to compile C, C++, and other code to WebAssembly, with integrations for browsers and APIs needed by applications being moved from native execution.
When to use it
For native code running on the web, consult porting guides for filesystem, threading, and graphics interfaces used by the application.