OpenType text shaping engine.is an
The old FreeType, Pango, and Qt and is available here. It is not actively developed or maintained, and is extremely buggy. All users are encouraged to switch over to the new as soon as possible. There are no release tarballs of old whatsoever.codebase, these days known as harfbuzz-old, was derived from
For tarball releases of here. At the same place you will also find Win32 binary bundles that include libharfbuzz DLL, hb-view.exe, hb-shape.exe, and all dependencies., look
The API that comes with hb.h will not change incompatibly. Other, peripheral, headers are more likely to go through minor modifications, but again, will 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 this.is right for you, read
On Linux, install the development packages for FreeType, Cairo, and GLib. For example, on Ubuntu / Debian, you would do:
- sudo apt-get install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev
whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do:
- sudo yum install gcc gcc-c++ freetype-devel glib2-devel cairo-devel
on the Mac, using MacPorts:
- sudo port install freetype glib2 cairo
or using Homeberw:
- brew install freetype glib cairo
If you are using a tarball, you can now proceed to running configure and make as with any other standard package. That should leave you with a shared library in src/, and a few utility programs including hb-view and hb-shape under util/.
- sudo apt-get install autoconf automake libtool pkg-config ragel gtk-doc-tools
and on Fedora, RHEL, CentOS:
- sudo yum install autoconf automake libtool pkgconfig ragel gtk-doc
on the Mac, using MacPorts:
- sudo port install autoconf automake libtool pkgconfig ragel gtk-doc
or using Homebrew:
- brew install autoconf automake libtool pkgconfig ragel gtk-doc
To get a better idea of where State of Text Rendering, though, that document is many years old. Here are a few presentation slides about HarfBuzz at the Internationalization and Unicode Conference over the years:stands in the text rendering stack you may want to read
November 2014, Unicode, OpenType, and HarfBuzz: Closing the Circle,
October 2012, HarfBuzz, The Free and Open Text Shaping Engine,
October 2009, HarfBuzz: the Free and Open Shaping Engine.
Both development and user support discussion around harfbuzz at lists freedesktop org 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 , or how well it has been suiting your project's needs.happens on the
To report bugs or submit patches, you can either use bugzilla, or the mailing list. Bugzilla is preferred, since we can track the issue until it has been fixed. More recently, issues and pull-requests on github have also becoming common and are now preferred over bugzilla.
For a comparison of old vs new this.memory consumption see
See past and upcoming HarfBuzz Hackfests
You can monitor various aspects of the project using the following online services:
- The code is replicated on GitHub; pull requests are responded to,
- With each commit, all tests are run on Travis CI,
- Public API / ABI changes are tracked across releases on ABI Tracker,
- Extensive testing dashboard run by Jonathan Kew here,
If your application uses ICU LayoutEngine library, there is a replacement library called icu-le-hb here that uses to provide the ICU 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 for instructions.