Emscripten: An LLVM-to-JavaScript Compiler
C C++ JavaScript Python Shell LLVM Other
Switch branches/tags
Permalink
Failed to load latest commit information.
.circleci Test running changes (#5983) Dec 29, 2017
cmake/Modules Reset minimum required CMake version to CMake 3.0.0, because the orig… Oct 24, 2017
docs Merge pull request #2151 from haneefmubarak/cleanup Mar 3, 2014
media remove extraneous eps since we have svg Mar 6, 2014
site remove CLANG_INCLUDE_EXAMPLES which does not exist in clang [ci skip] ( Jan 3, 2018
src optimize allocate() usage (#5987) Jan 3, 2018
system Implement MAIN_THREAD_EM_ASM() and MAIN_THREAD_ASYNC_EM_ASM() macros … Nov 22, 2017
tests Merge pull request #6018 from saschanaz/profiledpopen Jan 3, 2018
third_party Python 3 compatibility for WebIDL.py (#5799) Nov 20, 2017
tools ProfiledPopen as a subclass Jan 3, 2018
.gitignore Add new option for file_packager.py to store metadata externally. May 8, 2015
.travis.yml Skip current failures on travis, which require an emsdk rebuild (#5809) Nov 18, 2017
AUTHORS Fix format string in error emitting (#5918) Dec 14, 2017
CONTRIBUTING.md fix contributing link Sep 25, 2014
ChangeLog.markdown update Changelog [ci skip] Dec 25, 2017
Dockerfile use emsdk-master (#5972) Dec 23, 2017
LICENSE mention third_party in LICENSE Apr 13, 2016
README.md Merge branch 'patch-1' of github.com:dandv/emscripten into incoming Mar 24, 2014
em++ Resolve symlinks in em* wrapper scripts (#5534) Aug 29, 2017
em++.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
em++.py Resolve symlinks in em* wrapper scripts (#5534) Aug 29, 2017
em-config use print function (#5610) Oct 16, 2017
em-config.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emar Resolve symlinks in em* wrapper scripts (#5534) Aug 29, 2017
emar.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emar.py Python 3 compatibility: Use proper string types (#5792) Nov 17, 2017
embuilder.py Also build bc files for .a libraries in embuilder (#5675) Nov 15, 2017
emcc Resolve symlinks in em* wrapper scripts (#5534) Aug 29, 2017
emcc.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emcc.py optimize allocate() usage (#5987) Jan 3, 2018
emcmake Resolve symlinks in em* wrapper scripts (#5534) Aug 29, 2017
emcmake.bat Redirect emcmake calls to emconfigure. Feb 14, 2014
emcmake.py Add python2/3 shell execution wrappers for emcmake, emconfigure, emma… Jan 8, 2016
emconfigure Resolve symlinks in em* wrapper scripts (#5534) Aug 29, 2017
emconfigure.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emconfigure.py Python 3 compatibility: Use except-as syntax (#5679) Oct 18, 2017
emlink.py use print function (#5610) Oct 16, 2017
emmake Resolve symlinks in em* wrapper scripts (#5534) Aug 29, 2017
emmake.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emmake.py Python 3 compatibility: Use except-as syntax (#5679) Oct 18, 2017
emranlib Make emranlib, system/bin/sdl-config and system/bin/sdl2-config execu… Jan 11, 2016
emranlib.bat Fix python spawn scripts on Windows when the emscripten path contains… Aug 23, 2013
emrun Resolve symlinks in em* wrapper scripts (#5534) Aug 29, 2017
emrun.bat Added emrun utility that allows running .html files in a browser like… Dec 13, 2013
emrun.py Update emrun.py to latest version (brings python 3 compatibility) Oct 3, 2017
emscons Revert "**all: hard tabs, trailing newlines**" Mar 1, 2014
emscripten-version.txt 1.37.27 Dec 24, 2017
emscripten.py fix metadce + async bug. this breakage was not noticed until the js e… Dec 24, 2017
package.json update package.json Mar 3, 2014

README.md

emscripten logo

Emscripten is an LLVM-to-JavaScript compiler. It takes LLVM bitcode - which can be generated from C/C++, using llvm-gcc (DragonEgg) or clang, or any other language that can be converted into LLVM - and compiles that into JavaScript, which can be run on the web (or anywhere else JavaScript can run).

Links to demos, tutorial, FAQ, etc: https://github.com/kripken/emscripten/wiki

Main project page: http://emscripten.org

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.