Software:HarfBuzz
| Original author(s) | The FreeType Project |
|---|---|
| Developer(s) | Behdad Esfahbod, Khaled Hosny[1] |
| Stable release | 8.3.0 (11 November 2023[2]) [±] |
| Written in | C++ |
| Operating system | Unix-like, Windows |
| Type | Software development library |
| License | MIT |
HarfBuzz (loose transliteration of Persian calque حرفباز harf-bāz, 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

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
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
- 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
- ↑ "State of Text Rendering 2024". https://behdad.org/text2024/#:~:text=the%20current%20maintainer%20of%20HarfBuzz.
- ↑ "Release 8.3.0 · harfbuzz/harfbuzz". https://github.com/harfbuzz/harfbuzz/releases/tag/8.3.0.
- ↑ 3.0 3.1 3.2 3.3 Byfield, Bruce (19 December 2017). "HarfBuzz brings professional typography to the desktop". https://lwn.net/Articles/741722/.
- ↑ "HarfBuzz". freedesktop.org. https://www.freedesktop.org/wiki/HarfBuzz/.
- ↑ "HarfBuzz Official website". https://freedesktop.org/wiki/Software/HarfBuzz/.
- ↑ "O'Reilly Open Source Awards: OSCON 2013". 26 July 2013. http://www.oscon.com/oscon2013/public/schedule/detail/29956.
- ↑ 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" (in en). https://github.com/harfbuzz/harfbuzz/releases/tag/3.0.0.
- ↑ "HarfBuzz 4.0 Released for This Open-Source Text Shaping Library". https://www.phoronix.com/news/HarfBuzz-4.0.
- ↑ "HarfBuzz 4.3 Released with Big Performance Improvements". https://www.phoronix.com/news/HarfBuzz-4.3.
- ↑ "HarfBuzz 5.0 Released with Progress on Supporting the "Boring Expansion" Font Spec". https://www.phoronix.com/news/HarfBuzz-5.0-Released.
- ↑ "HarfBuzz 5.2 Released with Unicode 15 Support". https://www.phoronix.com/news/HarfBuzz-5.2-Released.
- ↑ "HarfBuzz 7.0 Text Shaping Engine Released". https://www.phoronix.com/news/HarfBuzz-7.0-Released.
- ↑ "HarfBuzz 8.0 Released - Introduces Shaper for WebAssembly within Font Files". https://www.phoronix.com/news/HarfBuzz-8.0.
- ↑ "HarfBuzz". https://doc.dl.playstation.net/doc/ps4-oss/harfbuzz.html.
- ↑ "JEP 258: HarfBuzz Font-Layout Engine". http://openjdk.java.net/jeps/258.
- ↑ "Flutter Engine Wiki". https://github.com/flutter/flutter/blob/master/docs/about/The-Engine-architecture.md#text-rendering.
- ↑ Engine, Godot. "Complex text layouts progress report #1" (in en). https://godotengine.org/article/complex-text-layouts-progress-report-1/.
- ↑ Engine, Godot. "Godot 4.0 sets sail: All aboard for new horizons" (in en). https://godotengine.org/article/godot-4-0-sets-sail/#new-text-rendering-systems.
- ↑ "Announcing Full RTL Language Support" (in en). 2024-10-28. https://discussions.unity.com/t/announcing-full-rtl-language-support/1544214.
- ↑ "OpenHarmony/third_party_harfbuzz" (in zh-CN). https://gitee.com/openharmony/third_party_harfbuzz.
- ↑ "LibreOffice 4.1 ReleaseNotes". The Document Foundation. 30 July 2013. https://wiki.documentfoundation.org/ReleaseNotes/4.1.
- ↑ LibreOffice 5.3 Enables New Layout Engine By Default
- ↑ "Scribus 1.5.3 Released". 2017-05-22. https://wiki.scribus.net/canvas/1.5.3_Release.
- ↑ "Unified Text Engine in Photoshop" (in en). 2022-06-07. https://helpx.adobe.com/mena_en/photoshop/using/unified-text-engine.html.
- ↑ "Feature summary of InDesign (October 2023 release)" (in en). 2023-10-30. https://helpx.adobe.com/indesign/using/whats-new/2024.html#harfbuzz.
- ↑ "Debugging Data Corruption with Emscripten | Figma Blog" (in en). 2016-11-07. https://www.figma.com/blog/debugging-data-corruption-with-emscripten/.
- ↑ "Rasmus Andersson on Twitter: "Figma uses FreeType and Harfbuzz for font layout...". 2020-05-30. https://twitter.com/rsms/status/1266506081284395011.
- ↑ Hosny, Khaled (2013-03-12). "[XeTeX XeTeX 0.9999.0 released"] (in en). https://tug.org/pipermail/xetex/2013-March/024118.html.
- ↑ Hosny, Khaled (2013). "What is new in XeTeX 0.9999?". TUGboat 34 (2): 121. https://tug.org/TUGboat/tb34-2/tb107hosny.pdf.
- ↑ "[Dev-luatex Luatex 1.11.1 announcement - dev-luatex - NTG Mailing Lists"] (in en). https://mailman.ntg.nl/archives/list/dev-luatex@ntg.nl/message/4L2MA5BYGF2OMOC4VBHFLPS7IPJDOVZG/.
- ↑ Hosny, Khaled (2019). "Bringing world scripts to LuaTeX: The HarfBuzz experiment". TUGboat 40 (1): 38–43. https://tug.org/TUGboat/tb40-1/tb124hosny-harfbuzz.pdf.
- ↑ "Middle Eastern Support in QuarkXPress 2025". https://www.quark.com/documentation/quarkxpress/2025/english/Middle%20Eastern%20Support%20in%20QuarkXPress%202025/_fe6d9977-52f8-49b0-8832-a47de1f972fd.html.
External links
- No URL found. Please specify a URL here or add one to Wikidata.
- Old Harfbuzz
