One of the new things that we are going to see on the upcoming 3.6 release of Gnome is the porting of Pango to Harfbuzz.
The process is already finished, but a lot of quality testing and result evaluation is necessary to ensure the better Gnome 3.6 user experience. Pango is currently using an internal copy of an early version of Harfbuzz. Harfbuzz 1.0 will be released sometime before GNOME 3.6.
What is Harfbuzz?
HarfBuzz is an OpenType text shaping engine that has been under development since 2006. HarfBuzz is currently being used by Pango, Qt, the Linux port of Google’s Chromium browser, as well as some smaller projects.
Harfbuzz and Pango
HarfBuzz is the meat of the modern GNU/Linux text rendering stack. With OpenType emerging as the universal font format supporting complex text rendering, HarfBuzz, as an OpenType Layout engine, is where all the magic happens. Starting with version 1.0, harfbuzz will provide a stable api, and pango can use it as an external library.
Pango is, for the most part, the roof of the text rendering stack. Components sitting on top of Pango (eg. GTK+) need not know about complexities of i18n text and are expected to simply use these opaque objects called PangoLayout’s. Pango has been designed to satisfy GTK+’s needs for i18n text. However, Pango still provides a low-level API on which one can build their own layout engine. This is what Firefox, Webkit-GTK, etc do, but it has proved to be a cumbersome practice.
For more information about harfbuzz, and text rendering in general, see State of text rendering
The latest version is 0.9.3 and it already provides an API that is not expected to change incompatibly, but this cannot be guaranteed until HarfBuzz 1.0.0 is released.
Harfbuzz is currently under heavy testing to ensure that its rendering is up to par in quality with UniScribe. The harfbuzz port of pango has been included in pango 1.31.0, and the pango support for Hangul, Hebrew, Khmer, Tibetan, Thai and Indic has been removed. All this is provided by harfbuzz now according to this source.