Linux HTML Widgets Cheat Sheet
When you start a new open source project and decide to provide parts or the whole UI by an HTML widget you face the problem of first finding HTML widget libraries, especially light weight ones, and then using the correct one to avoid throwing away the code at a later point when you find one important feature missing.
With this blog post I try to give a summary of existing open source HTML renderer libraries in the Linux world. I have some background experiences with the libraries from working on Liferea where we started with GtkHTML2, later added GtkMozembed support, then added Webkit support and finally switched to WebKit-only rendering.
The following table tries to summarize the simple availability of the different HTML renderers:
Name | Toolkit | Platform | Derived From | Driving Force | Active | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
KHTML | QT | % | KDE | KDE | Yes</tr> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
wxHtml</td> | wxWidgets | GTK, Windows | KHTML | wxWidgets | Yes</tr> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GtkHtml | GTK+ 1.0 | GNOME 1 | KHTML | GNOME 1 | No, long gone | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GtkHtml2 | GTK+ 2.0 | GNOME 2 | GtkHtml | GNOME 2 | No, v2.11: Aug 2007 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GtkHtml3 | GTK+ 2.0 | GNOME 2 | GtkHtml | Ximian, Evolution | No, v3.14: May 2008 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GtkMozEmbed | GTK+ 2.0 | Gecko | % | Mozilla | Somewhat | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
WebKitGtk | GTK+ 2.0 GTK+ 3.0 | Webkit | KHTML | Apple Safari | Yes </table> Note: My summary somewhat complements this Wikipedia list. Still it focusses more on Linux renderers and does correctly distinguish between the rather mad history of GtkHtml*. Given the list above one could conclude the only acceptable renderers are KTHML, wxHtml and WebkitGtk simply based on project activity. Still other renderers like GtkHtml2 and GtkHtml3 have gone a long way and provide a limited but stable functionality. But the important question is: What features are supported by the different renderers?
|