Skip to content

tetracalibers/learn-browsers-work

Repository files navigation

Challenge to build a toy browser in Rust

WIP: HTML Parser

実行方法

次のコマンドでsrc/main.rsrun_html関数に定義されたサンプル動作を見ることができます。

cargo run -- html

ログレベルをdebugにすると、パーサーの状態遷移やトークン発行のログが表示されるようになります。

RUST_LOG=debug cargo run -- html

ログレベルをtraceにすると、Tokenizerの各状態で検出した処理対象の文字も表示されるようになります。

RUST_LOG=trace cargo run -- html

-- htmlではなく、-- fast_htmlとすると、高速化バージョンを実行できます。

Maybe later...

  • 古いDOCTYPE
  • 文字参照
  • コメント
  • canvas、script、noscriptタグ
  • styleタグ
  • framesetタグ
  • templateタグ
  • searchタグ + form関連タグ
  • SVG関連タグ
  • MathML関連タグ

WIP: CSS Parser

現時点ではセレクタのパーサーしか実装されていません。

実行方法

次のコマンドでsrc/main.rsrun_css関数に定義されたサンプル動作を見ることができます。

cargo run -- css

About

Challenge to build a toy browser in Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages