A robust, high-performance text shaping engine and font platform supporting OpenType and Apple Advanced Typography.
HarfBuzz is an open-source text shaping engine and font platform that converts Unicode text into correctly positioned glyphs for rendering. It supports complex script handling and advanced typographic features through OpenType and Apple Advanced Typography (AAT) layout tables, solving the problem of accurate text display across diverse languages and writing systems.
Developers and engineers working on text rendering systems for operating systems, web browsers, design software, game engines, and embedded devices where precise typography is required.
Developers choose HarfBuzz for its robustness, cross-platform compatibility, and comprehensive support for modern font technologies. Its stable API and widespread adoption in major software ecosystems make it a reliable, industry-standard solution for text shaping.
HarfBuzz text shaping engine
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Handles OpenType and Apple Advanced Typography (AAT) layouts for complex scripts like Arabic and Indic, ensuring correct text shaping across diverse languages as used in major browsers and OSes.
Maintains backward compatibility across major versions, with API/ABI stability since the 0.9.x series, reducing integration risks for long-term projects like Android and Chrome.
Includes libharfbuzz-gpu for encoding glyph outlines using the Slug algorithm, with shader sources in GLSL, WGSL, MSL, and HLSL, enabling high-performance text rendering in games and apps.
Provides libharfbuzz-subset for font subsetting and variable font instancing, reducing file sizes for web fonts and embedded systems, as highlighted in the command-line tools.
Explicitly lacks font hinting implementation, requiring integration with FreeType or Skrifa for hinted rasterization, which can be a critical limitation for legacy displays or print applications.
Multiple optional backends (e.g., FreeType, CoreText) and libraries necessitate careful setup per CONFIG.md, making initial integration more involved compared to all-in-one solutions.
Libraries like libharfbuzz-raster and libharfbuzz-vector are marked experimental, limiting their reliability for production use in vector or bitmap output scenarios.