Emscripten - Emscripten
| Originalautor(en) | Alon Zakai |
|---|---|
| Stabile Version | 2.0.29 / 26. August 2021
|
| Repository | |
| Geschrieben in | C , C++ , JavaScript |
| Typ | Compiler |
| Lizenz | MIT-Lizenz , Open-Source-Lizenz der Universität von Illinois/NCSA |
| Webseite |
Emscripten |
Emscripten ist ein LLVM / Clang- basierter Compiler , der C- und C++- Quellcode zu WebAssembly (oder zu einer Teilmenge von JavaScript, bekannt als asm.js , seinem ursprünglichen Kompilierungsziel vor dem Aufkommen von WebAssembly im Jahr 2017), hauptsächlich für die Ausführung in Webbrowsern kompiliert .
Emscripten ermöglicht es, in C oder C++ geschriebene Anwendungen und Bibliotheken im Voraus zu kompilieren und effizient in Webbrowsern auszuführen, normalerweise mit Geschwindigkeiten, die mit interpretiertem oder dynamisch kompiliertem JavaScript vergleichbar oder schneller sind . Mit der neueren Entwicklung des WebAssembly System Interface (WASI) und WebAssembly- Laufzeiten wie Node.js , Wasmtime und Wasmer kann Emscripten auch zum Kompilieren in WebAssembly für die Ausführung in Nicht-Web-Einbettungen verwendet werden.
Verwendungszweck
Emscripten wurde verwendet, um eine Reihe von C/C++-Codebasen auf WebAssembly zu portieren, darunter Unreal Engine 3 , SQLite , MeshLab , Bullet physics . AutoCAD und eine Teilmenge des Qt-Anwendungsframeworks . Andere Beispiele für Software, die über Emscripten auf WebAssembly portiert wurde, sind die folgenden:
Spiel-Engines
Die Spiele-Engines Unity , Godot und Unreal bieten eine Exportoption für HTML5 unter Verwendung von Emscripten.
Frameworks & Toolkits
openFrameworks exportiert native C++-Anwendungen über Emscripten nach HTML5. emscripten-qt ermöglicht das Kompilieren von Anwendungen, die mit dem Qt-Anwendungsframework geschrieben wurden, in WebAssembly.
Software-Archivierung
Im Dezember 2014 brachte das Internet Archive einen in Emscripten kompilierten DOSBox- Emulator auf den Markt, um browserbasierten Zugriff auf Tausende von archivierten MS-DOS- und PC-Programmen zu ermöglichen.
Siehe auch
- asm.js
- Nativer Google-Client (PNaCl)
- Haxe
- WebAssembly