Puterチームは最近、Mozilla FirefoxのGeckoエンジンをWebAssembly(WASM)にコンパイルすることに成功し、ブラウザの中でもう一つのブラウザを完全に実行できるようにしました。この成果は、WebAssemblyの汎用ランタイムとしての能力を証明し、ブラウザ仮想化技術に新たな道を開くものです。
PuterがFirefox/Geckoを選んだ理由は、その強力なシングルプロセスサポートにあります。マルチプロセス構成の複雑さを避けるためです。開発プロセスでは、AnthropicのClaude OpusおよびFableモデルを多用し、推定25,000ドル相当のAIトークンが消費されました。この費用はClaude Maxサブスクリプションプランによって賄われ、高額なAI利用を経済的に実現しました。
ブラウザ内のWebAssemblyコードは任意のネットワーク接続を開くことができないため、PuterはWispプロトコルを使用したWebSocket経由で全トラフィックを自社サーバー経由でプロキシしています。この設計はサーバー負荷を増大させます(Hacker Newsでの議論中、チームはサーバーを拡張せざるを得ませんでした)が、エンドツーエンド暗号化を可能にします。テストの結果、HTTPSサイトへのトラフィックは暗号化され、HTTPサイトへのリクエストとレスポンスは平文で送信されることが確認されています。
このプロジェクトのコードは完全にオープンソースとしてGitHubリポジトリHeyPuter/firefox-wasmで公開されています。また、theogbob/WebkitWasmという同様のプロジェクトも存在し、WebKitエンジンをWASMにコンパイルする試みですが、現時点では公開されたオンラインデモはありません。Puterの成果は、ブラウザ内仮想化技術の可能性を広げ、将来的にはクラウドコンピューティング、開発テスト、セキュリティ分離などの分野での応用が期待されます。