Skip to content
Emscripten: An LLVM-to-Web Compiler
C++ C JavaScript Python HTML CMake Other
Branch: incoming
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Update emmalloc (#10145) Jan 9, 2020
.github Configure welcome bot: https://probot.github.io/apps/welcome/ (#9644) Oct 15, 2019
cmake/Modules Update FindOpenAL.cmake (#9830) Nov 14, 2019
docs Add `make install` target in docs/site for copying output to emscript… Dec 9, 2019
media remove extraneous eps since we have svg Mar 6, 2014
site Remove PTHREAD_HINT_NUM_CORES (#10166) Jan 9, 2020
src Add more stubs for pwd.h and grp.h functions (#10187) Jan 10, 2020
system Fix emmalloc tests to allow a bit of slop (#10183) Jan 10, 2020
tests Remove the use of copy2 in test_file_packager (#10190) Jan 10, 2020
third_party Update NodeJS externs to head. (#10178) Jan 10, 2020
tools Cleanup file_packager python code (#10177) Jan 9, 2020
.clang-format Add .clang-format file (copied from binaryen) (#7164) Sep 21, 2018
.editorconfig Add .editorconfig (#8359) Mar 28, 2019
.flake8 Add libunwind (LLVM 8.0.1) (#9442) Sep 17, 2019
.gitattributes Address comments from #9663 (#9699) Oct 24, 2019
.gitignore Move test-generated files out of source tree (#9776) Nov 4, 2019
.style.yapf Add .style.yapf for the YAPF python formatter (#6782) Jun 30, 2018
AUTHORS Handle mmap offset (#10095) Jan 6, 2020
CONTRIBUTING.md fix contributing link Sep 25, 2014
ChangeLog.md Add linker flag -s HTML5_SUPPORT_DEFERRING_USER_SENSITIVE_REQUESTS=0 … Jan 7, 2020
LICENSE mention third_party in LICENSE Apr 13, 2016
README.md Update the long-unupdated readme (#9889) [ci skip] Nov 22, 2019
em++ fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
em++.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
em++.py Add copyright headers to locally authored files (#7116) Sep 14, 2018
em-config test_other: Add helper function to verify expected failing commands. … Apr 30, 2019
em-config.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emar fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
emar.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emar.py Fix race condition in emar (#10161) Jan 9, 2020
embuilder.py Regal port update (#9947) Dec 17, 2019
emcc Always run via subprocess in python-selector. (#6795) Jul 11, 2018
emcc.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emcc.py Update emmalloc (#10145) Jan 9, 2020
emcmake fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
emcmake.bat Redirect emcmake calls to emconfigure. Feb 14, 2014
emcmake.py Enable flake8 by default (#8112) Feb 17, 2019
emconfigure fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
emconfigure.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emconfigure.py Don't print help message needlessly in emconfigure.py (#9437) Sep 17, 2019
emlink.py Fix all flake8 issues on python 3 (#9209) Aug 12, 2019
emmake fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
emmake.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emmake.py Don't print help message needlessly in emconfigure.py (#9437) Sep 17, 2019
emranlib Rename emranlib -> emranlib.py for consistency with other tools (#9744) Nov 1, 2019
emranlib.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emranlib.py Rename emranlib -> emranlib.py for consistency with other tools (#9744) Nov 1, 2019
emrun Fix emrun after recent python_selector change (#6844) Jul 12, 2018
emrun.bat Added emrun utility that allows running .html files in a browser like… Dec 13, 2013
emrun.py emrun: Set COOP,COEP and CORP headers (#10077) Jan 3, 2020
emscons Cleanup scons support and remove config file parsing (#7249) Oct 10, 2018
emscons.py Cleanup scons support and remove config file parsing (#7249) Oct 10, 2018
emscripten-version.txt 1.39.5 Dec 20, 2019
emscripten.py Look for orig$ functions from side modules too (#9906) Jan 9, 2020
emsize.py Remove blank lines from llvm-size in emsize.py (#10143) Jan 3, 2020
package-lock.json Cleanup package.json (#7536) Dec 7, 2018
package.json Cleanup package.json (#7536) Dec 7, 2018

README.md

emscripten logo

CircleCI

Main project page: http://emscripten.org

Overview

Emscripten compiles C and C++ to WebAssembly using LLVM and Binaryen. Emscripten output can run on the Web, in Node.js, and in wasm runtimes.

Emscripten provides Web support for popular portable APIs such as OpenGL and SDL2, allowing complex graphical native applications to be ported, such as the Unity game engine and Google Earth. It can probably port your codebase, too!

While Emscripten mostly focuses on compiling C and C++ using Clang, it can be integrated with other LLVM-using compilers (for example, Rust has Emscripten integration, with the wasm32-unknown-emscripten and asmjs-unknown-emscripten targets).

License

Emscripten is available under 2 licenses, the MIT license and the University of Illinois/NCSA Open Source License.

Both are permissive open source licenses, with little if any practical difference between them.

The reason for offering both is that (1) the MIT license is well-known, while (2) the University of Illinois/NCSA Open Source License allows Emscripten's code to be integrated upstream into LLVM, which uses that license, should the opportunity arise.

See LICENSE for the full content of the licenses.

You can’t perform that action at this time.