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 и Unit, а также движок симуляции физических процессов 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 обязательно


Обсуждение (10) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:12, 05/06/2026 [ответить]  
  • –3 +/
    Какие wasm-библиотеки посоветуете для рендеринга компонент или крутого 2D/3D?
     
  • 1.2, 12yoexpert (ok), 23:32, 05/06/2026 [ответить]  
  • –4 +/
    > LLVM

    лицензионный рак

    /thread

     
     
  • 2.5, Аноним (5), 00:23, 06/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Иштинно швaбодное жежю
     
  • 2.6, Аноним10084 и 1008465039 (?), 00:29, 06/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так наоборот лучшая лицензия же, пермиссивная. Не требует открывать всё, как копилефт
     
  • 2.7, Аноним (7), 01:53, 06/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> LLVM
    > лицензионный рак

    ...послышалось от пользователя Android. 🤭

     
     
  • 3.9, 12yoexpert (ok), 04:31, 06/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нравится отдавать все свои деньги раз в месяц? переезжай в рф
    нравится реклама? смотри хрютуб
     
     
  • 4.10, Аноним (7), 05:46, 06/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > отдавать все свои деньги
    > рф
    > реклама
    > хрютуб

    Весь дамп своего мозга выдал, бедняга. 😂

     

  • 1.3, Аноним (3), 23:36, 05/06/2026 [ответить]  
  • +/
    Что лучше, LLVM или LLM?
     
     
  • 2.4, Мемоним (?), 00:20, 06/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    LM
     

  • 1.8, Аноним (8), 03:39, 06/06/2026 [ответить]  
  • +1 +/
    Самое тупое, что изобрело человечество, кроме ботоксных губ
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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