Firefox запустили прямо в браузере — без установки, без плагинов

Команда Puter опубликовала на Hacker News эксперимент, который сложно не заметить: движок Gecko скомпилирован в WebAssembly и запускает настоящий интерфейс Firefox прямо внутри браузерной вкладки. Никакой виртуальной машины, никакого отдельного процесса — браузер внутри браузера работает силами самого веба. Авторы называют это «весёлым экспериментом для исследования границ возможностей WebAssembly».


Как это устроено

Gecko → WASM: компиляция «честного» движка

Gecko — это движок рендеринга Firefox, написанный на C++ и Rust. Именно он отвечает за отображение веб-страниц, выполнение JavaScript и всё остальное, что делает браузер браузером. Чтобы запустить его в браузере, авторы воспользовались возможностями WebAssembly (WASM) — низкоуровневого бинарного формата, который позволяет запускать код на C/C++, C# и Rust в браузере с почти нативной производительностью.

В итоге получилась вот такая архитектура:


graph TD
    A[Исходный код Gecko C++/Rust] -->|Компиляция Emscripten| B[WebAssembly модуль .wasm]
    B --> C[Браузер-хост: Chrome / Firefox / Safari]
    C --> D[Вкладка с Firefox-интерфейсом]
    D --> E[WebGL рендеринг GPU]
    D --> F[Wisp WebSocket-прокси]
    F --> G[Интернет]

Что внутри

Проект включает: сам движок Gecko, скомпилированный в WASM; полноценный интерфейс Firefox, который рендерится внутри вкладки; GPU-ускорение через WebGL; экспериментальный JIT (Just-In-Time компилятор) для JS → WASM; а также Wisp — WebSocket-прокси, через который вкладки загружают веб-контент.

ℹ Что такое Wisp?
Wisp — это WebSocket-прокси-сервер. Поскольку WebAssembly-модуль работает в песочнице браузера и не имеет прямого доступа к сети, Wisp выступает посредником: принимает запросы от внутреннего Firefox и передаёт их в интернет.
⚠ Ожидайте багов
Сами авторы предупреждают: проект экспериментальный. Потребление оперативной памяти высокое, возможны сбои. Это исследовательский прототип, а не замена браузеру.

Browser.js — более лёгкая альтернатива

Для более практичного использования Puter также разработал browser.js — решение «браузер в браузере», которое потребляет значительно меньше RAM. Это решение доступно на GitHub по адресу github.com/HeyPuter/browser.js и ориентировано на реальные сценарии применения.

ПараметрFirefox-WASMbrowser.js
ДвижокGecko (полный)Облегчённый
Потребление RAMВысокоеНизкое
ТипЭкспериментПрактичное решение
АутентичностьНастоящий FirefoxБраузероподобная среда
СтатусLabs / прототипGitHub-проект

Почему это важно: WebAssembly взрослеет

Этот эксперимент — яркая демонстрация того, как далеко зашёл WebAssembly. WebAssembly разработан для совместной работы с JavaScript — с помощью WebAssembly JavaScript API можно загружать WASM-модули в JS-приложения и обмениваться функциональностью.

WebAssembly 3.0 был выпущен в сентябре 2025 года. Среди новых возможностей — 64-битное адресное пространство, несколько адресных пространств, обработка исключений и сборка мусора для структур и массивов.

Technology стала мейнстримом: за последний год использование WebAssembly на сайтах, которые посещают пользователи Chrome, выросло ещё на 1% и теперь составляет 5,5% по метрикам Chrome Platform Status.

Когда-то WASM казался академической игрушкой. Сегодня в нём работают Figma, Unity, Adobe Photoshop для веба, а теперь ещё и сам Firefox.

💡 Попробовать самому
Эксперимент доступен прямо в браузере по адресу developer.puter.com/labs/firefox-wasm/. Откройте любой современный браузер, зайдите на страницу — и через несколько секунд увидите загружающийся Firefox внутри вашей вкладки.

Где ещё используют WASM подобным образом

Browser-in-browser — не единственный экзотический вариант применения. Figma перестроила движок рендеринга на C++ и поставляет его в каждый браузер через WASM; AutoCAD Web, Photopea и Adobe Photoshop для веба идут тем же путём.

Mozilla сама использует WebAssembly как инструмент безопасности внутри Firefox: через технологию RLBox сторонние библиотеки C/C++ для работы со шрифтами, изображениями и аудио изолируются путём компиляции в WASM и выполняются в жёсткой WASM-песочнице.

📝 Реальные применения WebAssembly
  • Figma — C++ рендеринг → WASM, 3× ускорение загрузки
  • Unity / Unreal Engine 5 — экспорт игр в WASM для браузера
  • Adobe Photoshop Web — полноценный графический редактор в браузере
  • Firefox RLBox — изоляция небезопасных библиотек через WASM-песочницу
  • Firefox-WASM — весь браузер целиком внутри вкладки

Что дальше

Эксперимент Puter ставит интересные вопросы: если браузер можно скомпилировать в WASM и запустить в браузере, что ещё возможно? Изолированные среды тестирования без виртуальных машин? Переносимые браузерные профили в облаке? Безопасные песочницы для запуска недоверенного веб-контента?

Пока это лабораторный эксперимент. Но история WebAssembly показывает, что то, что сегодня выглядит как трюк, завтра становится стандартом индустрии.