## HarfBuzz # IMPORTANT: 2020-06-05: We have moved to [[github.com/harfbuzz/harfbuzz|https://github.com/harfbuzz/harfbuzz]]. For latest releases, filing bug reports, etc, please go there. This page is kept for historical content that will eventually be ported to the Github space. [[!img HarfBuzz.png]] [[HarfBuzz|HarfBuzz]] is a text shaping engine. It primarily supports [[OpenType|http://www.microsoft.com/typography/otspec/]], but also [[Apple Advanced Typography|https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6AATIntro.html]]. HarfBuzz is used in Android, Chrome, ChromeOS, Firefox, GNOME, GTK+, KDE, LibreOffice, OpenJDK, PlayStation, Qt, XeTeX, and other places. ### Download For tarball releases of [[HarfBuzz|HarfBuzz]], look [[here|http://www.freedesktop.org/software/harfbuzz/release/]]. At the same place you will also find Win32 binary bundles that include libharfbuzz DLL, hb-view.exe, hb-shape.exe, and all dependencies. The canonical source tree is available on [[github|https://github.com/behdad/harfbuzz]]. The API that comes with _hb.h_ will not change incompatibly. Other, peripheral, headers are more likely to go through minor modifications, but again, we do our best to never change API in an incompatible way. We will never break the ABI. If you are not sure whether Pango or [[HarfBuzz|HarfBuzz]] is right for you, read [[this|http://mces.blogspot.in/2009/11/pango-vs-harfbuzz.html]]. ### Building See the [[build instructions|https://github.com/behdad/harfbuzz/blob/master/BUILD.md]]. ### Development To get a better idea of where [[HarfBuzz|HarfBuzz]] stands in the text rendering stack you may want to read [[State of Text Rendering|http://behdad.org/text/]], though, that document is many years old. Here are a few presentation slides about HarfBuzz at the Internationalization and Unicode Conference over the years: * November 2014, [[Unicode, OpenType, and HarfBuzz: Closing the Circle|http://goo.gl/FSIQuC]], * October 2012, [[HarfBuzz, The Free and Open Text Shaping Engine|http://goo.gl/2wSRu]], * October 2009, [[HarfBuzz: the Free and Open Shaping Engine|http://behdad.org/download/Presentations/slippy/harfbuzz_slides.pdf]]. Both development and user support discussion around [[HarfBuzz|HarfBuzz]] happens on the [[harfbuzz at lists freedesktop org|http://freedesktop.org/mailman/listinfo/harfbuzz/]] mailing list. Some of the developers frequent the #harfbuzz channel on freenode IRC server. If you write to the mailing list, you are guaranteed to get an answer. The same is not necessarily true about the IRC channel, or if you write to individual developers. Feel free to write to the list to tell us how you are using [[HarfBuzz|HarfBuzz]], or how well it has been suiting your project's needs. To report bugs or submit patches please use [[github|https://github.com/behdad/harfbuzz/]] issues and pull-requests. For a comparison of old vs new [[HarfBuzz|HarfBuzz]] memory consumption see [[this|http://goo.gl/woyty]]. See past and upcoming [[HarfBuzz Hackfests|Software/HarfBuzz/Hackfests]] You can monitor various aspects of the project using the following online services: * The code is replicated on [[GitHub|https://github.com/behdad/harfbuzz]]; pull requests are responded to, * With each commit, all tests are run on [[Travis CI|https://travis-ci.org/behdad/harfbuzz/builds]], * Public API / ABI changes are tracked across releases on [[ABI Tracker|http://abi-laboratory.pro/tracker/timeline/harfbuzz/]], * Extensive testing dashboard run by Jonathan Kew [[here|http://ec2-54-226-13-158.compute-1.amazonaws.com/index.html]], #### ICU LayoutEngine If your application uses ICU LayoutEngine library, there is a replacement library called _icu-le-hb_ [[here|https://github.com/behdad/icu-le-hb]] that uses [[HarfBuzz|HarfBuzz]] to provide the ICU [[LayoutEngine|LayoutEngine]] API. The C++ API is not ABI compatible, but the C API is. This library has not been tested seriously. If you use it, please report your experience to the mailing list. If you use ICU ParagraphLayout (aka layoutex, aka libiculx), you need to build that against icu-le-hb. See [[here|http://bugs.icu-project.org/trac/ticket/11023]] for instructions.