このプロジェクトについて
ZeroWebはRustで実装された実験的なクロスプラットフォームブラウザプロジェクトであり、リポジトリ内で「組み込み可能で再利用可能なZeroWebViewライブラリ」と「完全なZeroBrowserブラウザアプリケーション」という2つの製品ラインを同時に維持しています。プロジェクトのポジショニングは、組み込み優先、ライセンス境界優先(メインラインの依存関係はMIT、Apache-2.0、BSDなどの寛容なライセンスを優先)、およびRustフルスタックルートとしており、既存のカーネルをそのまま利用するのではなく、DOM、CSS、レイアウト、レンダリング、ナビゲーション、およびセキュリティ境界をリポジトリ内で層ごとに構築しています。
アーキテクチャ面ではマルチプロセス分割を採用しています。zero-browserはウィンドウ、ブラウザインターフェース、ネットワークプロキシ、およびIPCフレームのインポート表示のみを保持し、ページのレンダリングとスクリプト実行はzero-rendererが担当します。画像デコードと合成はそれぞれzero-image-decoderとzero-compositorの子プロセスが処理します。デフォルトのリリース版では、ブラウザプロセス内にWebView、スクリプトサンドボックス、またはJSエンジンをリンクしません。headlessデバッグも同様にrenderer IPCを通じてナビゲーション、スクリプト、スクリーンショットを実行します。ワークスペースは計32のメンバーで構成され、22のライブラリcrate、7つのアプリケーションエントリ、およびテスト・開発ツールが含まれています。
ページのJavaScript層はscript-sandboxによってV8/QuickJSのデュアルエンジンfeature gateが提供され、Web Worker、ES Modulesをカバーし、WebAssembly JS APIをwasm-sandboxへ自動的にブリッジします。V8のネイティブDOMバインディングはdefault-onとなっており、ネイティブイベントのディスパッチとバブリング、customElements/Web Componentsのライフサイクル、fetchのリアル実装、各種オブザーバーコールバック、およびフォームコントロールとセレクタのサポートが含まれています。メディア方向では、webm/Matroska demux、純RustによるVP9デコード、オプションのAV1およびH.264デコード、オーディオデコードとVideoPlayer再生ドライバ、ミキシングバス、およびWeb Audioの最小実装を提供しています。ストレージとオフライン機能はlocalStorage、sessionStorage、IndexedDB、caches/Cache APIをカバーし、Service Workerのライフサイクルとfetch respondWithインターセプトを実現しており、OPFSのリアル実装は現在進行中です。セキュリティ面では、CSP実装、HSTSプリロード、混合コンテンツのブロックとアップグレード、権限モデルとサイト分離が含まれ、アクセシビリティはFocusManagerとARIAから着手しています。HTML編集、キーボードインタラクション、およびフォーム動作の互換性も独立した開発ラインとして推進されています。
エンジニアリング面では、W3C WebDriverサービス(スクリーンショットとフルリンク統合テストを含む34のエンドポイント)、WPT/CSSWG reftestに基づくレンダリング互換性メトリクス(READMEには上流のreftest corpusの約87.2%が整合しており、Chromium Oracleのピクセル一致率を誠実な指標として記録)、製品静的ページのピクセル回帰ゲート、およびLinux/macOS/WindowsのパッケージングスクリプトとAndroid M0 bootstrapを提供しています。プロジェクトは実験段階であることを明記しており、主に学習、研究、およびエンジニアリング探索を目的としており、日常的または本番環境のブラウザとしての使用には適していません。ライセンスはMITです。また、これはAI-firstなエンジニアリング実験でもあり、コード開発の大部分はAIによって行われ、人間は方案設計、重要な意思決定、および結果の検証を担当しています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.