HarfBuzz Manual |
---|

**HarfBuzz**

HarfBuzz is a text shaping library. 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. See Downloading HarfBuzz for release tarballs.

- I. User's manual
- II. Reference manual
- Core API
- hb-blob — Binary data containers
- hb-buffer — Input and output buffers
- hb-common — Common data types
- hb-draw — Glyph drawing
- hb-deprecated — Deprecated API
- hb-face — Font face objects
- hb-font — Font objects
- hb-map — Object representing integer to integer mapping
- hb-set — Objects 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-meta — OpenType Metadata
- hb-ot-metrics — OpenType Metrics
- 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-graphite2 — Graphite2 integration
- hb-icu — ICU integration
- hb-uniscribe — Windows integration
- hb-gdi — GDI integration
- hb-directwrite — DirectWrite integration

- Style API
- hb-style — Font Styles

- Subset API
- hb-subset — Subsets font files.

- API Index
- Index of deprecated API
- Index of new symbols in 4.2.0
- Index of new symbols in 4.1.0
- Index of new symbols in 4.0.0
- Index of new symbols in 3.4.0
- Index of new symbols in 3.3.0
- Index of new symbols in 3.1.0
- Index of new symbols in 3.0.0
- Index of new symbols in 2.9.1
- Index of new symbols in 2.9.0
- Index of new symbols in 2.8.2
- Index of new symbols in 2.7.3
- Index of new symbols in 2.6.8
- Index of new symbols in 2.6.5
- Index of new symbols in 2.6.3
- Index of new symbols in 2.6.0
- Index of new symbols in 2.5.0
- Index of new symbols in 2.4.0
- Index of new symbols in 2.3.0
- Index of new symbols in 2.2.0
- Index of new symbols in 2.1.0
- Index of new symbols in 2.0.0
- Index of new symbols in 1.9.0
- Index of new symbols in 1.8.6
- Index of new symbols in 1.8.5
- Index of new symbols in 1.8.1
- Index of new symbols in 1.8.0
- Index of new symbols in 1.7.7
- Index of new symbols in 1.7.2
- Index of new symbols in 1.6.0
- Index of new symbols in 1.5.0
- Index of new symbols in 1.4.3
- Index of new symbols in 1.4.2
- Index of new symbols in 1.4.0
- Index of new symbols in 1.3.3
- Index of new symbols in 1.2.3
- Index of new symbols in 1.1.3
- Index of new symbols in 1.1.2
- Index of new symbols in 1.0.5
- Index of new symbols in 0.9.42
- Index of new symbols in 0.9.41
- Index of new symbols in 0.9.39
- Index of new symbols in 0.9.38
- Index of new symbols in 0.9.33
- Index of new symbols in 0.9.31
- Index of new symbols in 0.9.30
- Index of new symbols in 0.9.28
- Index of new symbols in 0.9.26
- Index of new symbols in 0.9.22
- Index of new symbols in 0.9.21
- Index of new symbols in 0.9.20
- Index of new symbols in 0.9.11
- Index of new symbols in 0.9.10
- Index of new symbols in 0.9.8
- Index of new symbols in 0.9.7
- Index of new symbols in 0.9.5
- Index of new symbols in 0.9.2
- Index of new symbols in 0.6.0
- Annotation Glossary

The current HarfBuzz codebase is versioned 2.x.x and is stable and under active maintenance. This is what is used in latest versions of Firefox, GNOME, ChromeOS, Chrome, LibreOffice, XeTeX, Android, and KDE, among other places.

Prior to 2012, the original HarfBuzz codebase (which, these days, is
referred to as *harfbuzz-old*) was derived from code
in FreeType,
Pango, and
Qt.
It is *not* actively developed or maintained, and is
extremely buggy. All users of harfbuzz-old are encouraged to switch over
to the new HarfBuzz as soon as possible.

To make this distinction clearer in discussions, the current HarfBuzz
codebase is sometimes referred to as *harfbuzz-ng*.

For reference purposes, the harfbuzz-old source tree is archived here. There are no release tarballs of harfbuzz-old whatsoever.