Emscripten
Emscripten — Компилятор LLVM-Байткода в код JavaScript, который может быть запущен в Веб-браузере. LLVM-байткод может быть получен из исходного кода на языке C или C++.
Основателем проекта является Алон Закай (Alon Zakai). Распространяется по лицензии MIT.
Целью развития проекта Emscripten является создание инструмента, который позволил бы выполнять в Интернете код независимо от языка программирования, на котором этот код написан. Emscripten позволяет осуществить компиляцию байткода LLVM в код на языке JavaScript, который может быть выполнен внутри веб-браузера, используя только штатный JavaScript-движок, без необходимости задействования дополнительных плагинов. Байткод LLVM может быть сгенерирован из исходных текстов C / C ++ с помощью компиляторов llvm-gcc и Clang, а также из кода на другом языке программирования, для которого существует LLVM-фронтенд. Emscripten поддерживает трансляцию вывода библиотеки SDL через Canvas, а также оказывает поддержку OpenGL через WebGL.
Среди проектов, которые удалось успешно пересобрать для работы в браузере, можно отметить ядро NetBSD, Интерпретаторы CPython, Ruby и Lua, PDF-просмотрщик Poppler, систему рендеринга TrueType-шрифтов FreeType, декодировщик видео H.264, игры Doom и Doom 3, игровой движок Unreal Engine, и другие.
Примечания
- Walton: Easily Port C++ To HTML5/JavaScript With Emscripten — http://www.webpronews.com/easily-port-c-to-html5javascript-with-emscripten-2012-04
- http://www.webpronews.com/easily-port-c-to-html5javascript-with-emscripten-2012-04
- https://web.archive.org/web/20130730202900/http://www.webpronews.com/easily-port-c-to-html5javascript-with-emscripten-2012-04
- JS-DOS / GAMES / DOOM — https://js-dos.com/games/doom.exe.html
- https://js-dos.com/games/doom.exe.html
- https://web.archive.org/web/20180719213327/http://js-dos.com/games/doom.exe.html
- D3Wasm: a port of id Tech 4 / Doom 3 engine to WebAssembly — http://www.continuation-labs.com/projects/d3wasm/
- http://www.continuation-labs.com/projects/d3wasm/
- https://web.archive.org/web/20190304113605/http://www.continuation-labs.com/projects/d3wasm/
- Unreal Engine — http://www.unrealengine.com/html5/
- http://www.unrealengine.com/html5/
- https://web.archive.org/web/20150411190514/https://www.unrealengine.com/html5/
- Mozilla and Epic Preview Unreal Engine 4 Running in Firefox — https://blog.mozilla.org/blog/2014/03/12/mozilla-and-epic-preview-unreal-engine-4-running-in-firefox/
- https://blog.mozilla.org/blog/2014/03/12/mozilla-and-epic-preview-unreal-engine-4-running-in-firefox/
- https://web.archive.org/web/20141006084124/https://blog.mozilla.org/blog/2014/03/12/mozilla-and-epic-preview-unreal-engine-4-running-in-firefox/
- http://www.opennet.ru/opennews/art.shtml?num=35313
- Компилятор Emscripten достиг возможности собственной пересборки — http://www.opennet.ru/opennews/art.shtml?num=35313 // Opennet.ru 13.11.2012
Ссылки
- Примеры браузерных игр с использованием Emscripten — https://www.webassemblygames.com/
- Примеры браузерных игр с использованием Emscripten