HarfBuzz

HarfBuzz is an OpenType text shaping engine. Using the HarfBuzz library allows programs to convert a sequence of Unicode input into properly formatted and positioned glyph output—for any writing system and language.

The canonical source-code tree is available at github.com/harfbuzz/harfbuzz and is also available at cgit.freedesktop.org/harfbuzz. See Downloading HarfBuzz for release tarballs.


I. User's manual
What is HarfBuzz?
What is text shaping?
Why do I need a shaping engine?
What does HarfBuzz do?
What HarfBuzz doesn't do
Why is it called HarfBuzz?
Installing HarfBuzz
Downloading HarfBuzz
Building HarfBuzz
Building on Linux
Building on Windows
Building on macOS
Configuration options
Getting started with HarfBuzz
An overview of the HarfBuzz shaping API
Terminology
A simple shaping example
Shaping concepts
Text shaping
Complex scripts
Shaping operations
Unicode character categories
Text runs
OpenType shaping models
Graphite shaping
AAT shaping
Buffers, language, script and direction
Creating and destroying buffers
Adding text to the buffer
Setting buffer properties
What about the other scripts?
Customizing Unicode functions
Fonts and faces
Using FreeType
Using HarfBuzz's native OpenType implementation
Using your own font functions
Clusters
Clusters and shaping
Working with HarfBuzz clusters
A clustering example for levels 0 and 1
Reordering in levels 0 and 1
The distinction between levels 0 and 1
Level 2
Ligatures with combining marks in level 2
Reordering in level 2
Other considerations in level 2
Shaping and shape plans
OpenType features
Plans and caching
II. Reference manual
Core API
hb-blob — Binary data containers
hb-buffer — Input and output buffers
hb-common — Common data types
hb-deprecated — Deprecated API
hb-face — Font face objects
hb-font — Font objects
hb-map — Object representing integer to integer mapping
hb-set — Object representing a set of integers
hb-shape-plan — Object representing a shaping plan
hb-shape — Conversion of text strings into positioned glyphs
hb-unicode — Unicode character property access
hb-version — Information about the version of HarfBuzz in use
OpenType API
hb-ot-color — OpenType Color Fonts
hb-ot-font — OpenType font implementation
hb-ot-layout — OpenType Layout
hb-ot-math — OpenType Math information
hb-ot-name — OpenType font name information
hb-ot-shape — OpenType shaping support
hb-ot-var — OpenType Font Variations
Apple Advanced Typography API
hb-aat-layout — Apple Advanced Typography Layout
Integration API
hb-coretext — CoreText integration
hb-ft — FreeType integration
hb-glib — GLib integration
hb-gobject — GObject integration
hb-graphite2 — Graphite2 integration
hb-icu — ICU integration
hb-uniscribe — Windows integration
API Index
Annotation Glossary