Emscripten is an LLVM/Clang-based compiler that compiles C and C source code to WebAssembly, primarily for execution in web browsers.

Emscripten allows applications and libraries written in C or C to be compiled ahead of time and run efficiently in web browsers, typically at speeds comparable to or faster than interpreted or dynamically compiled JavaScript. It even emulates an entire POSIX operating system, enabling programmers to use functions from the C standard library (libc).

With the more recent development of the WebAssembly System Interface (WASI) and WebAssembly runtimes such as Node.js, Wasmtime, and Wasmer, Emscripten can also be used to compile to WebAssembly for execution in non-Web embeddings as well.

Usage

Emscripten has been used to port a number of C/C code bases to WebAssembly, including Unreal Engine 3, SQLite, MeshLab, Bullet physics, AutoCAD, and a subset of the Qt application framework. Other examples of software ported to WebAssembly via Emscripten include the following:

Game engines

The Unity, Defold, and Godot game engines provide an export option to HTML5, utilizing Emscripten. Unreal Engine had this export option but it has been migrated out of the engine to a community member plug in.

Frameworks & toolkits

openFrameworks exports native C applications to HTML5 via Emscripten. emscripten-qt permits compiling applications written using the Qt application framework to WebAssembly.

Software archiving

In December 2014, the Internet Archive launched a DOSBox emulator compiled in Emscripten to provide browser-based access to thousands of archived MS-DOS and PC programs.

See also

  • asm.js
  • Google Native Client (PNaCl)
  • WebAssembly

References

External links

  • Official website
  • Project page on GitHub
  • Emscripten Documentation
  • Porting Examples and Demos
  • A list of some WebAssembly runtimes

Emscriptenを使ってブラウザでWebAssemblyを動かす JavaScript Qiita

windows下安装emscripten_51CTO博客_clickhouse windows安装

WebAssembly’s Rising Role in Web Development and Its Security Concerns

Windows10中Emscripten 安装详解_webassembly git 路径CSDN博客

The Emscripten Toolkit From C/C++ To WebAssembly Medium