Googleが、C言語で書かれたHTML構文解析ライブラリGumboをオープンソース化した。Gumboは、HTML5構文解析アルゴリズムに準拠し、html5lib-0.95のテストをすべてパスしている。また、Googleがインデックスを付けた25億ページでテストされている。
プロジェクトの説明ページによると、Gumboを公開する目的は、軽量なHTML構文解析ライブラリを開発者たちに提供することだ。Gumboは、外部に依存せず、大部分の言語から呼び出すことができる。このライブラリは、ウェブページ検証、静的アナライザ、テンプレート言語、リファクタリングツールなどに入れられるだろう。
Googleは、Gumboが「間違った入力にも強く、すぐに回復できる」としているが、ABIは将来変更される可能性があるので、一部の内部データ構造にはポインタを持たないように推奨している。しかし、APIはかなり安定しているとみられ、チームは、もうすぐリリースされる1.0の前に、ユーザからのコメントを受け付けている。
将来追加される機能の一部は以下の通りだ。
- テンプレートタグをサポートするという最近のHTML5スペックの変更をサポートする
- フラグメント構文解析をサポートする
- フル機能を持つエラー報告
- 他言語と結びつける
HTML5構文解析アルゴリズムの標準化より前に、各ブラウザは入力ページのトークン化の方法やそのページを表示する方法を選択する。HTML4は有効なマークアップの仕様を持っているが、入力が有効でなかったり、世界のウェブページの95%がW3Cリファレンス検証を通らなかったりする時、ブラウザはどうすべきかというガイダンスはない。Gumboのようなツールを使って、HTMLページを検証することで、すべての主要なブラウザで、適切に構文が解析され、表示されることを確認できる。