Gumbo es una implementación en C del algoritmo estandarizado de análisis sintáctico de HTML5. Google ha liberado, en forma de proyecto Open Source, esta librería para proporcionar una herramienta para la construcción de aplicaciones que necesiten manipular el HTML de las páginas webs.
Uno de los grandes logros del estándar HTML5 fue estandarizar el algoritmo de análisis de sintaxis de HTML, por el que todos los navegadores vean el mismo HTML de forma idéntica. Hasta ahora la implementación de este algoritmo dependía de cada navegador o de los motores de renderizado, lo que impedía realizar acciones de forma estándar.
Con el parser de Gumbo, Google en su faceta “filantrópica” espera que la forma de tratar el HTML se haga siguiendo el estándar que ellos han implementado basándose en el oficial.
Escrito en C se puede usar Gumbo fácilmente enganchandose con pequeñas aplicaciones en C, Python o Ruby, tal como muestran en la documentación, además de distintos binding con Objective-C. Sus usos son variados desde limpieza de código, refactoring, análisis de páginas, renderización de plantillas, etc..
La gran mayoría de navegadores web tienen su propio parser HTML 5, pero lo bueno que nos encontramos con Gumbo es que su propósito es ser portable en forma de librería en C para ser usado en distintos contextos. Veremos como evoluciona.
Más información | Gumbo HTML5 Parser Vía | Google Open Source Blog