Clone this wiki locally
Using Emscripten, you can
- Me & My Shadow - A 2D SDL platform/puzzle game (original here) new!
- OpenGL ES 2.0 Gears - OpenGL ES 2.0 rendering compiled to WebGL.
- XML schema validation - XML validation in pure JS using compiled libxml.
- Ray tracing - A simple C++ ray tracer, rendering to a canvas element
- Lua - The Lua interpreter
Note: Most or all of the demos are not optimized or even minified. It may take a short while to download a few MB of source code for each one.
- Tutorial - How to get started with Emscripten
- FAQ - Goals of this project, what it can be used for, architecture overview, etc.
- Developer tweets: @kripken
- Developer blog: kripken/azakai (also this)
- Technical Paper - A detailed writeup about how Emscripten works (the memory model, Relooper algorithm, etc.).
- Talks - Talks about Emscripten.
Get in Touch
- IRC: #emscripten on irc.mozilla.org
- Mailing list: emscripten-discuss
You can file issues here on GitHub. If relevant, please supply the original source, the generated .ll, and the generated .js files (in a gist, pastebin, or any other method).
CORRECT_SIGNS) can greatly affect the results.
Anyone is welcome to join us in developing Emscripten. Feel free to contact us on IRC or on the mailing list (links above), or through issues here on GitHub.
Patches can be submitted either in issues (as a gist is probably most convenient), or as pull requests, either is fine. When submitting patches, please:
- Add yourself to the AUTHORS file (if you aren't already there). By adding yourself, you agree to license your code under the project's open source licenses (MIT/LLVM).
- You should run all the automatic tests and make sure they pass (python tests/runner.py). Patches that are simple enough (for example, just add library functions that were not used before) might not need this, but most will. Please mention in the pull request or issue which tests you ran.
- If you did not run all the automatic tests, please make your pull request to incoming, not master. Code in incoming will have tests run on it, and will later merge to master when they all pass.
- If you add any new functionality or fix an existing bug, add an automatic test to tests/runner.py.
- Please do not include merge commits in pull requests; include only commits with the new relevant code.