site/source/index.rst
:layout: landing
.. title:: Main
.. _home-page:
.. only:: sdkbuild
.. admonition:: Welcome to Emscripten SDK |release|
This documentation contains everything you need to :ref:`start developing <Tutorial>` with the Emscripten SDK.
.. image:: _static/emscripten_logo_full.svg :alt: Emscripten logo :align: center
.. rst-class:: lead
Emscripten is a complete compiler toolchain to WebAssembly, using LLVM, with a special focus on speed, size, and the Web platform.
.. container:: buttons
:doc:Docs <docs/index>
GitHub <https://github.com/emscripten-core/emscripten>_
.. grid:: 1 1 2 3 :gutter: 2
.. grid-item-card:: Porting
Compile your existing projects written in C or C++ -- or any language that uses `LLVM <https://llvm.org/>`_ -- to browsers, `Node.js <https://nodejs.org/>`_, or `wasm runtimes <https://v8.dev/blog/emscripten-standalone-wasm#running-in-wasm-runtimes>`_.
.. grid-item-card:: APIs
Emscripten converts OpenGL into WebGL, and has support for familiar APIs like SDL, pthreads, and POSIX, as well as Web APIs and JavaScript.
.. grid-item-card:: Fast
Thanks to the combination of LLVM, Emscripten, `Binaryen <https://github.com/WebAssembly/binaryen>`_, and `WebAssembly <https://webassembly.org/>`_, the output is compact and runs at near-native speed.
.. admonition:: Interested to learn more?
Read our :doc:About page <docs/introducing_emscripten/about_emscripten>!
.. admonition:: Ready to get started?
:doc:Download and install the SDK <docs/getting_started/downloads> and then proceed to the :doc:Tutorial <docs/getting_started/Tutorial>!
.. toctree:: :hidden:
docs/introducing_emscripten/index docs/getting_started/index docs/compiling/index docs/porting/index docs/api_reference/index docs/tools_reference/index docs/optimizing/Optimizing-Code docs/optimizing/Optimizing-WebGL docs/debugging/Sanitizers docs/building_from_source/index docs/contributing/index docs/optimizing/Profiling-Toolchain docs/site/about genindex