cssparser (rust-cssparser)
CSS Syntax Level 3のRust実装。Servoプロジェクト由来のクレートで、servo/rust-cssparserリポジトリで開発されている。 #rust #browser-engine
特徴
- 個別のCSSプロパティのパースは行わず、トークナイズやコンポーネント値のパースといった低レベルな処理を提供する設計。CSSカラーや
:nth-child()等の引数(An+B記法)を解析するヘルパー関数は含む。 - どのCSSプロパティ群をサポートするかは上位のライブラリに委ねられている。Servoの
styleクレートは、cssparserを土台にプロパティ対応を追加した完全なCSSパースシステムの実装例になっている。
Stylo/Quantum CSSとの関係
Servoのスタイルシステムである「Stylo」(Quantum CSS)は、CSS解析にcssparserを利用している。StyloはQuantumプロジェクトを通じてFirefoxにも統合されており、cssparserはServoとFirefox両方のCSSエンジンを支える基盤コンポーネントになっている。
利用例
sghtmltopdfはCSS解析コンポーネントとしてcssparserを採用している。