Gumbo是一個 HTML5 解析算法實現,只用 C99 標準庫編碼實現,沒有其他外部依賴。其設計目標是為其他工具和庫的開發提供支持,這些工具和庫包括 linters(JS檢查器)、驗證器、模板語言以及重構和分析工具。
Gumbo 的目標和特性:
- 完全符合 HTML5 規范
- 對錯誤輸入有健壯性和彈性
- 簡單的API,易于其他語言封裝
- 支持對源文件定位
- 相對輕量級,無外部依賴
- 通過所有 html5lib-0.95 測試
- 在超過25億的谷歌索引頁面上測試過
非目標:
- 執行速度。因為Gumbo是純C編寫,所以速度上有優勢。雖然如此,但這并不是在擬定用途下的重要考量,也不是主要設計因素。
- 支持 UTF-8 以外的編碼。在大多數情況下,處理客戶端代碼之前,可以用另外的庫將輸入流轉換為UTF-8的文本。
- 支持 C89 標準。目前大多數主要的編譯器都支持C99,主要的特例( Microsoft Visual Studio)應該能夠在C++模式下編譯,需要細微調整。 (歡迎報告錯誤)。
未來可能加入的一些特性:
- 支持近期HTML5規范變動從而支持模板標簽
- 支持分段分析
- 全功能錯誤報告機制
- 與其他語言綁定