概要
- FirefoxのGeckoエンジンをWebAssemblyで動作
- ブラウザタブ内で完全なFirefox UIとレンダリングを実現
- WISPプロトコルによるエンドツーエンド暗号化通信
- WASM→JS JITによる実験的な高速化機能
- 実験的プロジェクトとして開発、より軽量な代替も存在
WebAssembly上で動作するFirefoxの概要
- Geckoエンジン や Spidermonkey JSエンジン をWebAssemblyにコンパイルし、ブラウザタブ内で実行
- Firefoxの 本物のユーザーインターフェース を再現
- WebGL を利用したウェブコンテンツのGPUアクセラレーション描画
- JIT(Just-In-Time)コンパイル によるWASM→JSの実験的高速化機能
- Wispサーバー を利用し、WebSocket経由でタブごとにウェブコンテンツをプロキシ
- Puter.js によるブラウザ内ネットワーキング
- エンドツーエンド暗号化 をWISPプロトコルで実現
- 25,000 opus/fableトークン 以上をデバッグやJIT研究に投入
技術的特徴とユースケース
- 全てのUIコンポーネント ・描画エンジンがWASMで動作
- ブラウザ内でブラウザを動かす 実験的アプローチ
- セキュリティ強化のための 暗号化通信
- JIT機能 はバグが発生する可能性があるため、実験的な利用を推奨
- メモリ消費量が高いため、実用性よりも技術デモや研究用途向け
代替案と関連プロジェクト
- より実用的な「 browser in browser」体験を提供する browser.js も開発
- https://github.com/HeyPuter/browser.js で公開
- メモリ消費量が少なく、より軽量な動作を実現
- 今回のプロジェクトは WebAssemblyの限界に挑戦 するための実験的試み
まとめ
- FirefoxのWebAssembly移植は 技術的チャレンジ と Webの新たな可能性 を示すデモ
- 本格的な利用には向かないが、 セキュリティ・パフォーマンス・互換性 の観点で貴重な知見を提供