Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Emscripten является LLVM / Clang основанное компилятор , который компилирует C и C ++ исходный код для WebAssembly [3] (или к подмножеству JavaScript , известного как asm.js , [4] своей первоначальной цели компиляции до появления WebAssembly в 2017 году), в первую очередь для исполнения в веб-браузерах .

Emscripten позволяет заранее компилировать приложения и библиотеки, написанные на C или C ++, и эффективно запускать их в веб-браузерах, как правило, со скоростью, сравнимой или большей, чем у интерпретируемого или динамически компилируемого JavaScript. С недавней разработкой системного интерфейса WebAssembly (WASI) [5] и сред выполнения WebAssembly, таких как Node.js , Wasmtime, [6] и Wasmer [7], Emscripten также можно использовать для компиляции в WebAssembly для выполнения в не- Веб-вложения тоже.

Использование [ править ]

Emscripten был использован для порта ряда C / C ++ код база в WebAssembly, в том числе Unreal Engine 3 , SQLite , MeshLab , [8] физика пули . [9] AutoCAD , [10] и подмножество фреймворка приложения Qt . [11] Другие примеры программного обеспечения, перенесенного на WebAssembly через Emscripten, включают следующее:

Игровые движки [ править ]

Единство , Годо , и Unreal движки предоставляют возможность экспорта в формат HTML5, используя Emscripten. [12] [13] [14]

Фреймворки и инструменты [ править ]

openFrameworks экспортирует собственные приложения C ++ в HTML5 через Emscripten. [15] emscripten-qt позволяет компилировать приложения, написанные с использованием инфраструктуры приложений Qt, в WebAssembly. [11]

Архивирование программного обеспечения [ править ]

В декабре 2014 года Internet Archive запустил эмулятор DOSBox, скомпилированный в Emscripten, чтобы обеспечить доступ через браузер к тысячам заархивированных программ MS-DOS и ПК. [16] [17] [18]

См. Также [ править ]

  • asm.js
  • Собственный клиент Google (PNaCl)
  • Haxe
  • WebAssembly

Ссылки [ править ]

  1. ^ "emscripten-core / emscripten: Релизы" . emscripten-core / emscripten. GitHub . Проверено 9 февраля 2021 .
  2. ^ "emscripten-core / emscripten: Emscripten: компилятор LLVM-to-JavaScript" . С: 40,0%; C ++: 34,4%; JavaScript: 17,4%.
  3. ^ https://github.com/kripken/emscripten/wiki/WebAssembly
  4. ^ Уолтон, Зак (2012-04-04). «Легко переносить C ++ в HTML5 / JavaScript с Emscripten» . WebProNews . Сеть iEntry. Архивировано из оригинала на 2013-07-30 . Проверено 25 апреля 2012 .
  5. ^ Проект Wasmtime. «WASI: Системный интерфейс WebAssembly» . WASI.dev . Проект Wasmtime . Проверено 10 февраля 2021 .
  6. ^ Проект Wasmtime. «Wasmtime: небольшая и эффективная среда выполнения для WebAssembly и WASI» . Wasmtime.dev . Проект Wasmtime . Проверено 10 февраля 2021 .
  7. ^ Васмер. «Wasmer: универсальная среда выполнения WebAssembly» . Wasmer.io . Васмер . Проверено 10 февраля 2021 .
  8. ^ http://www.meshlabjs.net - Домашняя страница экспериментальной, клиентской, javascript-версии MeshLab , работающей в браузере.
  9. ^ «Примеры переноса и демонстрации» . Emscripten GitHub wiki . Проверено 1 марта 2016 .
  10. ^ «Будущее AutoCAD» . Через интерфейс . Проверено 9 мая 2018 ..
  11. ^ a b "Qt для WebAssembly" .
  12. ^ «Игровой движок Unity запускается в браузере без плагинов» . Ars Technica . Проверено 1 марта 2016 .
  13. ^ «Будущее скриптинга в Unity - блог Unity» . Блог Unity Technologies . Проверено 1 марта 2016 .
  14. ^ "Tappy Chicken" . www.unrealengine.com . Проверено 1 марта 2016 .
  15. ^ "Настройка openFrameworks для Emscripten" . openFrameworks . Проверено 4 марта 2016 .
  16. ^ Ohlheiser, Abby (2015-01-05). «Теперь вы можете играть в почти 2400 видеоигр MS-DOS в своем браузере» . Вашингтон Пост . Проверено 8 января 2015 .
  17. Каждый новый ботинок - чудо Джейсона Скотта (23 декабря 2014 г.)
  18. ^ "Поиск в Интернет-архиве:" collection: softwarelibrary_msdos " " . archive.org . Проверено 1 марта 2016 .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Страница проекта на GitHub
  • Документация Emscripten
  • Примеры переноса и демонстрации
  • Список некоторых сред выполнения WebAssembly