Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Emscripten

From Wikipedia, the free encyclopedia
Program converting LLVM bytecode to WebAssembly
Emscripten
Original authorAlon Zakai
Initial release22 October 2011 (2011-10-22)[1]
Stable release
4.0.21[2] Edit this on Wikidata / 1 December 2025; 2 months ago (1 December 2025)
Repository
Written inC,C++,JavaScript[3]
TypeCompiler
LicenseMIT License,University of Illinois/NCSA Open Source License
Websiteemscripten.org Edit this on Wikidata

Emscripten is anLLVM/Clang-basedcompiler that compilesC andC++source code toWebAssembly,[4] primarily for execution inweb browsers.

Emscripten allows applications and libraries written in C or C++ to be compiled ahead of time and run efficiently in web browsers, typically at speeds comparable to or faster thaninterpreted ordynamically compiled JavaScript. It even emulates an entirePOSIX operating system, enabling programmers to use functions from theC standard library (libc).[5]

With the more recent development of theWebAssembly System Interface (WASI)[6] and WebAssemblyruntimes such asNode.js,Wasmtime,[7] andWasmer,[8] Emscripten can also be used to compile to WebAssembly for execution in non-Web embeddings as well.

Usage

[edit]

Emscripten has been used toport a number of C/C++ code bases to WebAssembly, includingUnreal Engine 3,SQLite,[9]MeshLab,[10]Bullet physics,[11]AutoCAD,[12] and a subset of theQt application framework.[13] Other examples of software ported to WebAssembly via Emscripten include the following:

Game engines

[edit]

TheUnity,Defold, andGodot game engines provide an export option to HTML5, utilizing Emscripten.[14][15][16]Unreal Engine had this export option but it has been migrated out of the engine to a community member plug in.[17] TheSource Engine, has a community developed port for Emscripten dubbed "HalfLife2JS".[18]

Frameworks & toolkits

[edit]

openFrameworks exports native C++ applications to HTML5 via Emscripten.[19] emscripten-qt permits compiling applications written using theQt application framework to WebAssembly.[13]

Software archiving

[edit]

In December 2014, theInternet Archive launched aDOSBox emulator compiled in Emscripten to provide browser-based access to thousands of archivedMS-DOS and PC programs.[20][21][22]

Creation

[edit]

Emscripten was created by Alon Zakai in 2010, motivated by his desire to port his fork of the open-source first-person shooter gameSauerbraten, known asSyntensity,[23] to the web.Sauerbraten (also known asCube 2) is an open-source FPS game,[24] andSyntensity was Zakai's project that extended theCube 2 Engine for greater flexibility. Observing the increasing shift of applications to web browsers, Zakai began developing Emscripten as an LLVM-to-JavaScript compiler, aiming to make it possible to run existing C and C++ code, such as game engines, directly in the browser. In early blog posts, Zakai explained that his long-term goal was "to run Syntensity, or a smaller version of it, on the web",[25] and Emscripten was released as open source shortly after its initial development, making it available for the broader community to experiment with and contribute to.[26][27]

See also

[edit]

References

[edit]
  1. ^Zakai,Alon (22 October 2011)."Emscripten: An LLVM-to-JavaScript compiler".Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion. OOPSLA. pp. 301–312.doi:10.1145/2048147.2048224.ISBN 978-1-4503-0942-4.
  2. ^"Release 4.0.21". 1 December 2025. Retrieved3 December 2025.
  3. ^"emscripten-core/emscripten: Emscripten: An LLVM-to-JavaScript Compiler".GitHub.C: 40.0%; C++: 34.4%; #"ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=emscripten-core%2Femscripten%3A+Emscripten%3A+An+LLVM-to-JavaScript+Compiler&rft_id=https%3A%2F%2Fgithub.com%2Femscripten-core%2Femscripten%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AEmscripten">
  4. ^WebAssembly · emscripten-core/emscripten Wiki · GitHub
  5. ^Clark, Lin."Standardizing WASI: A system interface to run WebAssembly outside the web – Mozilla Hacks - the Web developer blog".Mozilla Hacks – the Web developer blog. Mozilla. Retrieved31 October 2022.
  6. ^The Wasmtime Project."WASI: The WebAssembly System Interface".WASI.dev. The Wasmtime Project. Retrieved2021-02-10.
  7. ^The Wasmtime Project."Wasmtime: A small and efficient runtime for WebAssembly & WASI".Wasmtime.dev. The Wasmtime Project. Retrieved2021-02-10.
  8. ^Wasmer."Wasmer: The Universal WebAssembly Runtime".Wasmer.io. Wasmer. Retrieved2021-02-10.
  9. ^"sqlite3 WebAssembly & JavaScript Documentation Index".SQLite. Retrieved2023-05-08.
  10. ^http://www.meshlabjs.net - Homepage of the experimental, client based, javascript, version ofMeshLab that runs inside a browser
  11. ^"Porting Examples and Demos".Emscripten GitHub wiki. Retrieved2016-03-01.
  12. ^"The Future of AutoCAD".Through the Interface. Retrieved2018-05-09..
  13. ^ab"Qt for WebAssembly".
  14. ^"Unity game engine heading to the browser without plug-ins".Ars Technica. 18 March 2014. Retrieved2016-03-01.
  15. ^"The future of scripting in Unity – Unity Blog".Unity Technologies Blog. Retrieved2016-03-01.
  16. ^"Defold HTML Development".Defold Documentation. Retrieved2023-12-18.
  17. ^"Developing HTML5 with Unreal".Unreal Documentation. 18 December 2023. Retrieved2018-12-18.
  18. ^Half-Life 2: Javascript, EmSource, 2025-04-13, retrieved2025-04-14
  19. ^"openFrameworks setup for Emscripten".openFrameworks. Retrieved2016-03-04.
  20. ^Ohlheiser, Abby (2015-01-05)."You can now play nearly 2,400 MS-DOS video games in your browser".The Washington Post. Retrieved2015-01-08.
  21. ^Each New Boot a Miracle by Jason Scott (December 23, 2014)
  22. ^"Internet Archive Search: "collection:softwarelibrary_msdos"".archive.org. Retrieved2016-03-01.
  23. ^Kripken (2009-04-22)."Scriptensity: Intro".Scriptensity. Retrieved2025-07-24.
  24. ^"Cube 2: Sauerbraten".sauerbraten.org. Retrieved2025-07-24.
  25. ^Kripken (2010-08-29)."Scriptensity: Emscripten".Scriptensity. Retrieved2025-07-24.
  26. ^Kripken (2010-08-14)."Scriptensity: Update on Where Things are Going".Scriptensity. Retrieved2025-07-24.
  27. ^"Make your own games with Syntensity".www.dedoimedo.com. Retrieved2025-07-24.

External links

[edit]
Code analysis
Subsets,* supersets
Transpilers
Concepts
Debuggers
Documentation generators
Editors (comparison)
Engines
Frameworks
Relatedtechnologies
Package managers
Module bundlers
Server-side
Unit testing frameworks (list)
People
Retrieved from "https://en.wikipedia.org/w/index.php?title=Emscripten&oldid=1332223924"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp