Emscripten: An LLVM-to-JavaScript Compiler
C C++ JavaScript Python Shell LLVM Other
Switch branches/tags
Clone or download
kripken Remove assertion on EMSCRIPTEN_ROOT (#6924)
* remove assertion on EMSCRIPTEN_ROOT - on windows we have seen failures due to C:\PROGRA~1 being the same as C:\Program Files (despite the strings differing), and there is no simple way to check that. On other platforms links may cause similar issues, so it's not worth it

* remove tests for invalid EMSCRIPTEN_ROOT [ci skip]
Latest commit baefce0 Jul 31, 2018
Permalink
Failed to load latest commit information.
.circleci misc testing/CI tidy-up (#6890) Jul 24, 2018
cmake/Modules Add EMSCRIPTEN_VERSION variable to user CMake scripts (#6809) Jul 5, 2018
docs process: merging to master should wait on CI and builds to all be gre… Jul 11, 2018
media remove extraneous eps since we have svg Mar 6, 2014
site update embind docs quick example to work with wasm async compilation … Jul 27, 2018
src MODULARIZE / scriptDirectory improvements (#6914) Jul 28, 2018
system Fix em_asm.h after upstream size_t change in llvm (#6908) Jul 26, 2018
tests Remove assertion on EMSCRIPTEN_ROOT (#6924) Jul 31, 2018
third_party Python 3 compatibility for WebIDL.py (#5799) Nov 20, 2017
tools Remove assertion on EMSCRIPTEN_ROOT (#6924) Jul 31, 2018
.flake8 Move flake8 whitelisting to standard location (#6846) Jul 13, 2018
.gitattributes Add -test git attribute to tools/crunch-worker.js (#6403) Apr 2, 2018
.gitignore Add new option for file_packager.py to store metadata externally. May 8, 2015
.style.yapf Add .style.yapf for the YAPF python formatter (#6782) Jun 30, 2018
.travis.yml shift some tests around, as one of the travis runs is too close to th… Jul 26, 2018
AUTHORS embind: add UTF-8 support for string transfer (#4255) Jul 26, 2018
CONTRIBUTING.md fix contributing link Sep 25, 2014
ChangeLog.markdown update changelog [ci skip] Jul 24, 2018
Dockerfile Core test suite mode name cleanup (#6834) Jul 12, 2018
LICENSE mention third_party in LICENSE Apr 13, 2016
README.md Add status badges for travis and circle-ci (#6537) May 16, 2018
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 fix regression in 1.37.37 from 9a5a9b6 : configure scripts should be … Apr 19, 2018
em-config Replace uses of `eval` (#6069) (#6436) Apr 30, 2018
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 emar: fix exit code handling (#6627) Jun 4, 2018
embuilder.py Handle KeyboardInterrupt cleanly (#6701) Jun 15, 2018
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 SINGLE_FILE: only emit necessary files. fixes #6912 (#6913) Jul 28, 2018
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 Add python2/3 shell execution wrappers for emcmake, emconfigure, emma… Jan 8, 2016
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 Python 3 compatibility: Use except-as syntax (#5679) Oct 18, 2017
emlink.py use print function (#5610) Oct 16, 2017
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 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 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 Use implict truthyness of len(). NFC. (#6771) Jul 2, 2018
emscons Revert "**all: hard tabs, trailing newlines**" Mar 1, 2014
emscripten-version.txt Change size_t and friends to use `long` types. Jul 24, 2018
emscripten.py Emterpreter-async state fix (#6822) Jul 10, 2018
package.json update package.json Mar 3, 2014

README.md

emscripten logo

Build Status CircleCI

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.