Emscripten | |
---|---|
Тип | транспайлер и свободное и открытое программное обеспечение |
Разработчик | Alon Zakai[вд] |
Написана на | Си[2], C++ и JavaScript |
Операционная система | кроссплатформенность |
Аппаратная платформа | кроссплатформенность |
Последняя версия | |
Репозиторий | github.com/emscripten-co… |
Лицензия | лицензия MIT и открытая лицензия Иллинойсского университета[вд] |
Сайт | emscripten.org (англ.) |
Emscripten — компилятор LLVM-байткода в код JavaScript, который может быть запущен в веб-браузере[3]. 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[4] и Doom 3[5], игровой движок Unreal Engine[6][7], и другие.[8]