Emscripten

Emscripten
Original author(s)Alon Zakai
Stable release
3.1.69[1] Edit this on Wikidata / 11 October 2024; 28 days ago (11 October 2024)
Repository
Written inC, C++, JavaScript[2]
TypeCompiler
LicenseMIT License, University of Illinois/NCSA Open Source License
Websiteemscripten.org Edit this on Wikidata

Emscripten is an LLVM/Clang-based compiler that compiles C and C++ source code to WebAssembly,[3] 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).[4]

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

  1. ^ "Release 3.1.69". 11 October 2024. Retrieved 21 October 2024.
  2. ^ "emscripten-core/emscripten: Emscripten: An LLVM-to-JavaScript Compiler". GitHub. C: 40.0%; C++: 34.4%; JavaScript: 17.4%.
  3. ^ WebAssembly · emscripten-core/emscripten Wiki · GitHub
  4. ^ Clark, Lin. "Standardizing WASI: A system interface to run WebAssembly outside the web – Mozilla Hacks - the Web developer blog". Mozilla Hacks – the Web developer blog. Mozilla. Retrieved 31 October 2022.
  5. ^ The Wasmtime Project. "WASI: The WebAssembly System Interface". WASI.dev. The Wasmtime Project. Retrieved 2021-02-10.
  6. ^ The Wasmtime Project. "Wasmtime: A small and efficient runtime for WebAssembly & WASI". Wasmtime.dev. The Wasmtime Project. Retrieved 2021-02-10.
  7. ^ Wasmer. "Wasmer: The Universal WebAssembly Runtime". Wasmer.io. Wasmer. Retrieved 2021-02-10.