Группа энтузиастов собрала SDK, позволяющий собирать полноценные настольные приложения прямо в браузере.
Система устроена так: инструменты сборки разделены на две части: host и target. Часть target полностью независима от платформы, на которой выполняется компиляция, что позволяет использовать её для сборки приложения на любой платформе, включая браузер.
Далее, этими же инструментами собирается сам clang с целью wasm32-unknown-unknown, он и выполняет сборку в браузере.
Для того, чтобы система запускалась. создана «зонтичная» libc, которая транслирует внешние POSIX функции в функции системы. Эта libc одновременно заменяет UCRT на Windows и служит полноценной libc в WebAssembly.
Лицензия запрещает поставлять заголовки Windows SDK и MacOS SDK в браузерную систему, потому им найдены замены. На Windows это ручные функциональные замены для функций WinAPI, которые линкуются с системными DLL независимо от Windows SDK. На MacOS создан открытый sysroot на базе открытых заголовков XNU и открытых проектов Apple.
Поверх собственной libc собирается llvm libc++, прикладные библиотеки (curl, openssl, freetype, libpng и прочие), собственные прикладные средства и собственный открытый графический движок Xenolith Engine.
Система сама выбирает графический API и API оконной системы, за счёт чего одно и то же приложение может работать на Linux в режимах X11 или Wayland. Поддеживается WebGPU, что позволяет запускать графические приложения там же, в браузере. Инструменты сборки для Linux поставляются со старой glibc (2.33), за счёт чего могут запусаться на современных системах и линковаться с glibc старших версий бесшовно, без контейнера или другой обёртки. Все нужные зависимости собираются статически, либо линкуются динамически через dlopen. На Windows, среда (включая поставляемый бинарно clang) не использует реализаций С и C++ от Microsoft, вместо этого реализована собственная базовая библиотека и подсистема старта.
Система сборки – GNU Make (4.1+), однако для Windows и WebAssembly используется собственный сборщик xlmake (его исходный код также в репозитории), полностью совместимый по синтаксису с GNU Make. Он необходим, поскольку обычные Makefile часто ожидают Linux-подобную среду исполнения, а на Windows и WebAssembly её нет. xlmake подменяет вызовы к стандартным программам встроенными функциями, и работает с тем же Makefile.
Среда позволяет использовать любую базовую платформу для того, чтобы собирать любую целевую платформу, кросс-компиляция здесь заложена изначально на самом базовом уровне. Именно за счёт этого стало возможным собирать полнофункциональные настольные приложения в браузере.
Исходный код среды доступен на Github под лицензией MIT, там же есть бинарные сборки инструментов. Все без исключения инструменты собираются из исходных кодов внутри среды (для сборки требуется Linux и компилятор, способный собрать GCC 15.2, дальше среда соберёт всё сама).
Доступна онлайн-демонстрация с набором примеров, включая DOOM и демо-версию HoMM2. Не требует регистрации, работает одной страницей, не общается сервером, данные лежат на AWS CDN, отслеживание посещений Яндекс-метрикой.









