Руководство разработчика представлено в виде пошаговой инструкции для компиляции простой программы непосредственно в WebAssembly.
Чтобы компилировать в WebAssembly, используем Low Level Virtual Machine (LLVM). В качестве предварительного условия необходимы следующие инструменты:
- Git. В Linux и OS X это, скорее всего, уже присутствует. В Windows просто загрузите соответствующую версию Git.
- CMake. В Linux и OS X можно использовать менеджеры пакетов, такие как apt-get или brew. Для ОС Windows загрузите установщик CMake.
- Компиляторы. В Linux установите GCC, на OS X – Xcode, а в Windows – последнюю версию Visual Studio Community.
- Python для вашей операционной системы.
После установки перечисленных элементов убедитесь, что git, cmake и python доступны в PATH.
Руководство разработчика включает в себя компиляцию Emscripten
Сборка Emscripten автоматизирована за счет Emscripten SDK. Весь процесс состоит из следующих этапов:
$ git clone https://github.com/juj/emsdk.git $ cd emsdk $ ./emsdk install sdk-incoming-64bit binaryen-master-64bit $ ./emsdk activate sdk-incoming-64bit binaryen-master-64bit
Установка завершена. Далее введите:
$ source ./emsdk_env.sh
Эта команда добавляет соответствующие переменные среды и записи в PATH для настройки и легкого доступа к инструментам компилятора.
В Windows замените элемент команды ./emsdk на emsdk, а в source ./emsdk_env.sh запишите emsdk_env.
Компилируем и запускаем простую программу на WebAssembly
Мы разобрали полную инструментальную цепочку, которая используется для компиляции простой программы в WebAssembly. Однако есть несколько оговорок:
- Мы должны передать -s WASM=1 в emcc (иначе по умолчанию emcc выдаст asm.js).
- Если мы хотим, чтобы Emscripten создавал HTML-страницу, которая запускает нашу программу, в дополнение к двоичной базе wasm и JavaScript-оболочке мы должны указать имя выходного файла с расширением .html.
- Наконец, чтобы запустить программу, мы не можем просто открыть HTML-файл в веб-браузере. Для этого необходимо воспользоваться HTTP.
Теперь давайте напишем простую программу «Hello, World!» и скомпилируем ее. Этап компиляции – последняя строка кода:
$ mkdir hello $ cd hello $ echo '#include <stdio.h>' > hello.c $ echo 'int main(int argc, char ** argv) {' >> hello.c $ echo 'printf("Hello, World!\n");' >> hello.c $ echo '}' >> hello.c $ emcc hello.c -s WASM=1 -o hello.html
Чтобы задействовать HTTP, используйте веб-сервер emrun, поставляемый с Emscripten SDK:
$ emrun --no_browser --port 8080 .
После запуска HTTP-сервера вы можете открыть его в браузере и увидеть «Hello, World!».
Дальшейшее изучение
- KharkivJS #5: Серьезный JS - WebAssembly: новая эра веба (видео)
- OdessaJS 2017 - Real world WebAssembly (видео)
- Репозиторий с примерами
- Документация на Mozilla Developer Network
Также рекомендуем Вам посмотреть:
Git за полчаса: руководство для начинающих
6 приложений, использующих глубокое обучение, для начинающих
Учебник по выживанию для начинающих разработчиков
Как выучить Python и найти работу
Язык Python и миллион запросов в секунду
Комментарии