HarfBuzz
| HarfBuzz | |
|---|---|
| Original author | The FreeType Project |
| Developers | Behdad Esfahbod, Khaled Hosny[1] |
| Stable release | 12.3.2[2] (24 January 2026; 2 days ago (24 January 2026)) [+-] |
| Repository | |
| Written in | C++ |
| Operating system | Unix-like, Windows |
| Type | Software development library |
| License | MIT |
| Website | harfbuzz |
HarfBuzz (loose transliteration of Persian calque Hrfbz harf-baz, literally "open type")[3][4] is a software library for supporting text shaping, which is the process of converting Unicode text to glyph indices and positions. The newer version, New HarfBuzz (2012-), targets various font technologies while the first version, Old HarfBuzz (2006-2012), targeted only OpenType fonts.[3][5]
History
[edit]HarfBuzz evolved from code that was originally part of the FreeType project. It was then developed separately in Qt and Pango. Then it was merged back into a common repository with an MIT license. This was Old HarfBuzz, which is no longer being developed, as the path going forward is New HarfBuzz.[3] In 2013, Behdad Esfahbod won the O'Reilly Open Source Award for his work on HarfBuzz.[6]
Important milestones for New HarfBuzz include:
- 0.9.2, SIL Graphite support
- 1.0 includes Universal Shaping Engine concepts from Microsoft
- 1.4 with OpenType font variation support
- 1.6 with Unicode 10 support
- 1.8 with Unicode 11 support
- 2.0 with Apple Advanced Typography (AAT) shaping support.[7][8][9][10][11]
- 2.1 with color fonts support and improved major AAT Shaping features.
- 2.4 Unicode 12 support
- 2.6.7 Unicode 13 support
- 3.0 stable font subsetter API, Unicode 14 support[12]
- 4.0 more than 65536 Glyphs and metrics supported[13]
- 4.3 major speed up[14]
- 5.0 BE Fonts support[15]
- 5.2 Unicode 15 support[16]
- 7.0 introduced new APIs, new command-line utility, font emboldening support and reduced memory usage[17]
- 8.0 introduced support for using WebAssembly-based shaper embedded in fonts[18]
Users
[edit]Most applications don't use HarfBuzz directly, but use a UI toolkit library that integrates with it.
HarfBuzz is used by the UI libraries of:
- GNOME (GTK)
- KDE (Qt)
- ChromeOS (Skia)
- PlayStation 4[19]
- Android[3]
- Java[20]
- Flutter[21]
- Godot (since version 4.0)[22][23]
- Unity (since version 6.0)[24]
- OpenHarmony (HarmonyOS)[25]
HarfBuzz is used directly by many applications, including:
- Chromium
- Firefox
- LibreOffice (from version 4.1 on Linux only,[26] from 5.3 on all platforms[27])
- Scribus (since version 1.5.3)[28]
- Inkscape
- Adobe Photoshop (since version 23.0[29])
- Adobe InDesign (when using World Ready Composer since InDesign 19.0[30])
- Figma[31][32]
- XeTeX (since version 0.9999)[33][34]
- LuaTeX (since version 1.11.1)[35][36]
- QuarkXPress[37]
See also
[edit]- Graphite (smart font technology), a programmable Unicode-compliant smart-font technology and rendering system developed by SIL International
- Uniscribe and DirectWrite, APIs that provide similar functionality on the Microsoft Windows platform.
- Core Text, API provides similar functionality on macOS (HarfBuzz can be used instead of it on macOS also)
References
[edit]- ^ "State of Text Rendering 2024". behdad.org. Retrieved 1 May 2025.
- ^ harfbuzz. "Release 12.3.2 * harfbuzz/harfbuzz". Retrieved 24 January 2026.
- ^ a b c d Byfield, Bruce (19 December 2017). "HarfBuzz brings professional typography to the desktop". LWN.net.
- ^ "HarfBuzz". freedesktop.org.
- ^ "HarfBuzz Official website". Retrieved 10 November 2012.
- ^ "O'Reilly Open Source Awards: OSCON 2013". 26 July 2013. Archived from the original on 18 June 2015. Retrieved 25 September 2014.
- ^ HarfBuzz 1.0 Implements Microsoft's Universal Shaping Engine Released
- ^ HarfBuzz 1.4 Brings OpenType GX / Font Variations
- ^ HarfBuzz 1.8 Released With Unicode 11 Support
- ^ HarfBuzz 2.0 Released For Advancing Open-Source Text Shaping
- ^ HarfBuz articles on Phoronix
- ^ "Release 3.0.0 * harfbuzz/harfbuzz". GitHub. Retrieved 26 May 2023.
- ^ "HarfBuzz 4.0 Released for This Open-Source Text Shaping Library".
- ^ "HarfBuzz 4.3 Released with Big Performance Improvements".
- ^ "HarfBuzz 5.0 Released with Progress on Supporting the "Boring Expansion" Font Spec".
- ^ "HarfBuzz 5.2 Released with Unicode 15 Support".
- ^ "HarfBuzz 7.0 Text Shaping Engine Released".
- ^ "HarfBuzz 8.0 Released - Introduces Shaper for WebAssembly within Font Files".
- ^ "HarfBuzz". doc.dl.playstation.net. Retrieved 26 May 2019.
- ^ "JEP 258: HarfBuzz Font-Layout Engine". OpenJDK Enhancement Proposals. Retrieved 20 December 2017.
- ^ "Flutter Engine Wiki". GitHub. Retrieved 24 March 2025.
- ^ Engine, Godot. "Complex text layouts progress report #1". Godot Engine. Retrieved 12 September 2024.
- ^ Engine, Godot. "Godot 4.0 sets sail: All aboard for new horizons". Godot Engine. Retrieved 12 September 2024.
- ^ "Announcing Full RTL Language Support". Unity Discussions. 28 October 2024. Retrieved 18 November 2024.
- ^ "OpenHarmony/third_party_harfbuzz". Gitee (in Chinese (China)). Retrieved 13 March 2025.
- ^ "LibreOffice 4.1 ReleaseNotes". The Document Foundation. 30 July 2013. Retrieved 6 October 2019.
- ^ LibreOffice 5.3 Enables New Layout Engine By Default
- ^ "Scribus 1.5.3 Released". 22 May 2017. Retrieved 6 June 2018.
- ^ "Unified Text Engine in Photoshop". 7 June 2022. Retrieved 25 May 2023.
- ^ "Feature summary of InDesign (October 2023 release)". 30 October 2023.
- ^ "Debugging Data Corruption with Emscripten | Figma Blog". Figma. 7 November 2016. Retrieved 12 September 2024.
- ^ "Rasmus Andersson on Twitter: "Figma uses FreeType and Harfbuzz for font layout..." 30 May 2020. Archived from the original on 30 May 2020. Retrieved 12 September 2024.
- ^ Hosny, Khaled (12 March 2013). "[XeTeX] XeTeX 0.9999.0 released". TUG. Retrieved 12 September 2024.
- ^ Hosny, Khaled (2013). "What is new in XeTeX 0.9999?" (PDF). TUGboat. 34 (2): 121.
- ^ "[Dev-luatex] Luatex 1.11.1 announcement - dev-luatex - NTG Mailing Lists". mailman.ntg.nl. Retrieved 12 September 2024.
- ^ Hosny, Khaled (2019). "Bringing world scripts to LuaTeX: The HarfBuzz experiment" (PDF). TUGboat. 40 (1): 38-43.
- ^ "Middle Eastern Support in QuarkXPress 2025". www.quark.com. Retrieved 17 July 2025.