The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен Emscripten 6.0, компилятор из C/C++ в WebAssembly

05.06.2026 23:07 (MSK)

Опубликован выпуск инструментария Emscripten 6.0, позволяющего компилировать код на C/C++ и других языках, для которых имеются фронтэнды на базе LLVM, в универсальный низкоуровневый промежуточный код WebAssembly. Полученный результат можно использовать для интеграции с JavaScript-проектами, запуска в web-браузере, использования в Node.js или создания обособленных многоплатформенных приложений, запускаемых при помощи wasm runtime. Код проекта распространяется под лицензией MIT. В компиляторе используются наработки проекта LLVM, а для генерации WebAssembly и оптимизации задействована библиотека Binaryen.

Основной целью Emscripten заявлено создание инструмента, позволяющего выполнять в Web код независимо от языка программирования, на котором этот код изначально написан. В компилируемых приложениях могут использоваться вызовы стандартных библиотек C и С++ (libc, libcxx), расширения C++, многопоточность на базе pthreads, API POSIX и многие мультимедийные библиотеки. Отдельно предоставляются API для интеграции с Web API и кодом на JavaScript. Emscripten поддерживает трансляцию вывода библиотеки SDL2 через Canvas, а также реализует поддержку OpenGL и EGL через API WebGL, что позволяет преобразовывать в WebAssembly графические приложения и игры (например, имеется порт тулкита Qt, поддерживаются игровые движки Unreal Engine и Unity, а также движок симуляции физических процессов Bullet).

Помимо компиляции кода на C/C++ отдельно развиваются проекты для запуска в браузерах интерпретаторов и виртуальных машин для языков Lua, C#, Python, Ruby и Perl. Кроме того, возможно применение фронтэндов к LLVM, отличных от Clang, например, фронтэндов для языков, как Swift, Rust, D и Fortran.

Присвоение номера версии 6.0 связано с внесением изменений, нарушающих совместимость. Основные изменения в Emscripten 6.0:

  • Увеличены минимальные версии браузерных движков, в которых может исполняться генерируемый код: Chrome 74 -> 85, Firefox 68 -> 79 и Safari 12.2 -> 14.1. Изменение позволило задействовать по умолчанию расширения WebAssembly для импорта и экспорта изменяемых глобальных переменных, а также увеличения разрядности чисел с сохранением знака и значения.
  • При выполнении потоковой загрузки с использованием операции Fetch размер загружаемого блока теперь ограничен 8 МБ для предотвращения загрузки в память сразу всего содержимого больших файлов.
  • Обновлены версии musl libc 1.2.6, libpng 1.6.58 и google-closure-compiler 20260429.0.0.
  • Реализован флаг компилятора "-m64", который аналогичен флагам "-sMEMORY64" и "--target=wasm64".
  • Из объекта PThread удалено поле PThread.runningWorkers.
  • Функция pause() теперь возвращает 0 вместо EINTR.
  • На платформе Windows вместо bat-файла (emcc.bat) для запуска Emscripten предложен exe-файл (emcc.exe).


  1. Главная ссылка к новости (https://github.com/emscripten-...)
  2. OpenNews: Компилятор Emscripten достиг возможности собственной пересборки
  3. OpenNews: Emscripten - проект по созданию компилятора кода C/C++ в JavaScript
  4. OpenNews: Опубликован стандарт WebAssembly 3.0
  5. OpenNews: Представлен порт ядра Linux для WebAssembly, запускаемый в браузере
  6. OpenNews: Доступен Wasmer 5.0, инструментарий для создания приложений на базе WebAssembly
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65625-emscripten
Ключевые слова: emscripten, javascript, webassembly
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (4) RSS
  • 1.1, Аноним (1), 23:12, 05/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Какие wasm-библиотеки посоветуете для рендеринга компонент или крутого 2D/3D?
     
     
  • 2.14, Rezzet (??), 12:31, 06/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    SDL3
     

  • 1.12, Джон Титор (ok), 09:47, 06/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    О, если Lua можно в WASM превратить, то это снимает головную боль. А когда? И какой проект этим занимается?
     
     
  • 2.15, Jackson (??), 15:25, 06/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты наверное думаешь, что луа код компилится в webasm, но нет. В него компилится LuaVM, которая потом выполняет обычные луа скрипты. Смысла в этом немного, когда есть typescript.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру