|
2 | 2 |
|
3 | 3 | [](https://circleci.com/gh/emscripten-core/emscripten/tree/incoming)
|
4 | 4 |
|
5 |
| -Emscripten is an [LLVM](https://en.wikipedia.org/wiki/LLVM)-to-JavaScript |
6 |
| -compiler. It takes LLVM bitcode - which can be generated from C/C++, using |
7 |
| -`llvm-gcc` (DragonEgg) or `clang`, or any other language that can be converted |
8 |
| -into LLVM - and compiles that into JavaScript, which can be run on the web (or |
9 |
| -anywhere else JavaScript can run). |
10 |
| - |
11 |
| -Links to **demos**, **tutorial**, **FAQ**, etc: |
12 |
| -<https://github.com/emscripten-core/emscripten/wiki> |
13 |
| - |
14 | 5 | Main project page: <http://emscripten.org>
|
15 | 6 |
|
| 7 | +Overview |
| 8 | +-------- |
| 9 | + |
| 10 | +Emscripten compiles C and C++ to [WebAssembly](https://webassembly.org/) using |
| 11 | +[LLVM](https://en.wikipedia.org/wiki/LLVM) and |
| 12 | +[Binaryen](https://github.com/WebAssembly/binaryen/). Emscripten output can run |
| 13 | +on the Web, in Node.js, and in |
| 14 | +[wasm runtimes](https://v8.dev/blog/emscripten-standalone-wasm#running-in-wasm-runtimes). |
| 15 | + |
| 16 | +Emscripten provides Web support for popular portable APIs such as OpenGL and |
| 17 | +SDL2, allowing complex graphical native applications to be ported, such as |
| 18 | +the [Unity game engine](https://docs.unity3d.com/Manual/webgl-gettingstarted.html) |
| 19 | +and [Google Earth](https://blog.chromium.org/2019/06/webassembly-brings-google-earth-to-more.html). |
| 20 | +It can probably port your codebase, too! |
| 21 | + |
| 22 | +While Emscripten mostly focuses on compiling C and C++ using |
| 23 | +[Clang](https://clang.llvm.org/), it can be integrated with other LLVM-using |
| 24 | +compilers (for example, Rust has Emscripten integration, with the |
| 25 | +`wasm32-unknown-emscripten` and `asmjs-unknown-emscripten` targets). |
| 26 | + |
16 | 27 | License
|
17 | 28 | -------
|
18 | 29 |
|
|
0 commit comments