Eszközök

Puter: Firefox böngésző WebAssembly-ben futó változata másik böngészőben

A Puter nevű projektnek sikerült a Firefoxot WebAssembly-re fordítania, így a teljes böngésző egy másik böngészőben futtatható.

Puter: Firefox böngésző WebAssembly-ben futó változata másik böngészőben

A Puter projekt összeállította a Firefoxot WebAssembly-re (WASM) úgy, hogy a teljes böngésző egy másik böngészőben fusson. A demonstráció során a fejlesztő megmutatta, hogy saját blogja Firefoxban fut, maga a Firefox pedig WebAssembly-ben fut egy másik böngészőben (például Chrome alatt).

Műszaki választások és indoklás

A csapat a Firefox/Gecko kódját választotta, mert erős egyfolyamatú (single-process) támogatása megkönnyítette az összeállítást és a futtatást ilyen környezetben. A WebAssembly-re fordítás lehetővé teszi, hogy natív böngészőmotor JavaScript/WebAssembly-konténerben fusson egy másik böngésző lapján belül.

Hálózati proxy és biztonság

A demonstráció minden hálózati forgalmat egy WebSocket-alapú csatornán keresztül továbbít Puter szerverére, a Wisp protokoll használatával. Ez szükséges, mert a böngészőkben futó kódok nem tudnak tetszőleges hálózati kapcsolódásokat kezdeményezni, így a WebSocket-proxy egy kötelező megoldás a projekt jelenlegi felépítésében.

A Puter szerint a megoldás támogatja a végpontok közötti titkosítást. A projekt egyik vizsgálata szerint a WebSocket-üzeneteket elemezve az HTTPS-en keresztül célzott forgalom titkosítva jelent meg, míg a http://www.example.com/ kérések és válaszok tiszta szövegként jelentek meg a proxyn keresztül.

Költségek és skálázás

A projektet körülbelül 25 000 dollár értékű Claude Opus és Fable token finanszírozta, a munkát a Claude Max előfizetés csomagjának keretei között végezték. A Puter csapata arról számolt be, hogy a Hacker News-on megindult beszélgetés idején a megnövekedett forgalom kezelése érdekében fel kellett skálázniuk a szervereket, ami további terhelést és költségeket jelentett.

Forráskód és kapcsolódó munkák

A firefox-wasm adattár nyilvánosan elérhető a Puter projektben. Hasonló jellegű kezdeményezés a theogbob/WebkitWasm, amely WebKitet fordít WebAssembly-re; ez a projekt azonban jelenleg nem rendelkezik nyilvánosan elérhető online demóval.

Miért számít ez?

A Firefox WebAssembly-re fordítása érdekes demonstrációja annak, hogyan lehet összetett, natív kódokat webböngészőben futtatni korlátozások mellett. A megközelítés alkalmazási területei kísérleti jellegűek: oktatás, kutatás, sandboxing és kompatibilitási tesztek. Ugyanakkor a megoldás hálózati proxyfölöttisége és az ezzel járó költségek rámutatnak a gyakorlati bevezetés korlátaira.


Források és további információk

  • Puter projekt demonstrációja és a firefox-wasm adattár
  • theogbob/WebkitWasm mint hasonló kezdeményezés
  • Hacker News vitafolyamatok, amelyek a szerverforgalom növekedését okozták

(Összegzés a projekt publikus nyilatkozatai és a demonstráció megfigyelései alapján.)