Web開発
Show HN: 2年かけて開発した新ブラウザがAcid 3テストをパス
Show HN: I worked on a new browser for 2 years, today it passed Acid 3 (code.intellios.ai)
要約
開発者が2年間かけてZig言語でゼロから構築した新しいWebブラウザ「cwbrowser」が、Acid 3テストで100/100の満点を獲得しました。このブラウザは、GoogleのV8 JavaScriptエンジンを組み込みつつ、レンダリングエンジン(HTMLパーサー、CSS、レイアウト、ペイントパイプライン)は全て独自実装されており、Chromeと比較して約2倍高速で軽量であることが特徴です。現在、macOS版の公開プレビュー版が準備中です。
全文翻訳
cwbrowser
Zigで完全にゼロから書かれたレンダリングエンジンと、GoogleのV8をJavaScript用に組み合わせたWebブラウザ。
ソロで2年間の作業 — 非常に軽量で、初期テストではChromeの約2倍の速さ。
Chromium、WebKit、Geckoは一切使用していません。
HTMLパーサー、CSSカスケード、レイアウトエンジン、ペイントパイプラインはすべてZigで手書きされており、JavaScript仮想マシンのみをGoogleのV8から借用しています。
その結果、エンドツーエンドで理解可能なほど小さく、同じハードウェアで主流のエンジンに勝るほど高速なブラウザが誕生しました。
Acid3 100/100 準拠テスト — 完全なスコア
初期ベンチマークでGoogle Chromeの約2倍高速
ゼロから構築されたパーサー、CSS、レイアウト、ペイント — すべてZigで手書き
レンダリングエンジンにおける2年間のソロエンジニアリング
Acid3 100/100
本日、cwbrowserはAcid3テストで満点の100/100を達成しました — これは、ゼロから構築されたエンジンが、主流エンジンがクリアしたのと同じ準拠基準を満たしたことを意味します。
⤓ ダウンロード — 近日公開
macOS · Apple Silicon
パブリックビルドが準備中です。公開されたら通知を受け取りたいですか?私にメールを送ってください。リンクをお送りします。
cwbrowser on acid3.acidtests.org — クリーンな100/100、独自のエンジンでレンダリングされています。ステータスバーに注目してください:ページ全体が2265ミリ秒でロードされ、レイアウトされました。
これは何ですか
cwbrowserは、私が過去2年間でゼロから書いたレンダリングエンジンを基盤としたデスクトップWebブラウザです。ChromeがBlinkを、SafariがWebKitを、FirefoxがGeckoを出荷しているのに対し、cwbrowserは独自のエンジンを出荷しています。トークナイザー、DOM、CSSパーサーとカスケード、ボックスモデルのレイアウトパス、そしてペイントステージはすべてZigで書かれたオリジナルのコードです。Zigは、小さく、高速で、メモリに注意を払うシステム言語です。唯一再発明していない部分はJavaScriptエンジンです。最新のJITコンパイル型JS VMを再実装するのは10年規模のプロジェクトなので、cwbrowserはGoogleのV8(ChromeやNodeと同じエンジン)を組み込み、それをゼロから構築したDOMに接続しています。これにより、Webの外観を決定する部分が完全に手作りされた、標準に準拠した実際のブラウザが得られます。
どのように構築されているか
言語
レンダリングエンジン全体にZigを使用 — 手動メモリ管理、ガベージコレクターなし、隠れたランタイムなし。
HTML & DOM
エンジンとV8の両方が操作するライブDOMを生成する、ゼロから構築されたトークナイザーとツリービルダー。
CSS
レイアウトパスに供給される、オリジナルパーサーとカスケード — セレクター、特異性、継承、ボックスモデル。
レイアウト & ペイント
手書きのブロック/インラインレイアウトと、Acid3リファレンスにピクセルパーフェクトで一致するペイントパイプライン。
JavaScript
GoogleのV8をDOMに組み込み、バインド — ChromeとNodeを動かすのと同じVM。
パフォーマンス
初期テストでは、同じマシンでChromeの約2倍のパフォーマンス。エンジン全体が設計上軽量です。
なぜブラウザをゼロから構築するのか?
現代のWebは3つのレンダリングエンジンで動いていますが、それらはすべて巨大で、20年以上前に書かれたコードの子孫です。cwbrowserは、現代のシステム言語を使用し、再発明する価値が本当になかった唯一のコンポーネント(JS VM)のみを借用することで、今日、ブラウザエンジンをより小さく、より速く、そして一人の人間が理解できるものとして再構築できるという賭けです。Acid3を100/100でパスすることは、このアプローチが実際の標準に対して通用することを示す最初の証拠です。
ダウンロード
macOS on Apple Silicon向けのパブリックプレビュービルドが間もなく登場します。まだここには掲載されていません — 公開されたら、ここに掲載されます。
⤓ ダウンロード — 近日公開
macOS · Apple Silicon
ベータ版が利用可能になったら、haojng@gmail.com までメールで通知を受け取ってください。