HarfBuzz

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

HarfBuzz
Original authorThe FreeType Project
DevelopersBehdad Esfahbod, Khaled Hosny[1]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC++
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemUnix-like, Windows
    TypeSoftware development library
    LicenseMIT

    HarfBuzz (loose transliteration of Persian calque حرف‌باز harf-bāz, literally "open type")[2][3] 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.[2][4]

    History

    [edit | edit source]

    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.[2] In 2013, Behdad Esfahbod won the O’Reilly Open Source Award for his work on HarfBuzz.[5]

    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.[6][7][8][9][10]
    • 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[11]
    • 4.0 more than 65536 Glyphs and metrics supported[12]
    • 4.3 major speed up[13]
    • 5.0 BE Fonts support[14]
    • 5.2 Unicode 15 support[15]
    • 7.0 introduced new APIs, new command-line utility, font emboldening support and reduced memory usage[16]
    • 8.0 introduced support for using WebAssembly-based shaper embedded in fonts[17]

    Users

    [edit | edit source]

    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:

    HarfBuzz is used directly by many applications, including:

    See also

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ HarfBuzz 1.0 Implements Microsoft's Universal Shaping Engine Released
    7. ^ HarfBuzz 1.4 Brings OpenType GX / Font Variations
    8. ^ HarfBuzz 1.8 Released With Unicode 11 Support
    9. ^ HarfBuzz 2.0 Released For Advancing Open-Source Text Shaping
    10. ^ HarfBuz articles on Phoronix
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    26. ^ LibreOffice 5.3 Enables New Layout Engine By Default
    27. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    29. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    30. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    31. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    32. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    33. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    34. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    35. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    36. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]
    • Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).
    • Old Harfbuzz