JEP 258: HarfBuzz Font-Layout Engine

AuthorSteven R. Loomis
OwnerPhilip Race
Created2014/11/11 00:31
Updated2017/02/23 16:43
TypeFeature
StatusClosed / Delivered
Componentclient-libs / 2d
ScopeImplementation
Discussionharfbuzz dash dev at openjdk dot java dot net
EffortM
DurationM
Priority3
Reviewed byKevin Rushforth, Philip Race
Endorsed byKevin Rushforth
Release9
Issue8064530

Summary

Replace the existing ICU OpenType font-layout engine with HarfBuzz.

Motivation

An OpenType layout engine, such as ICU or HarfBuzz, provides script-aware code to process certain font tables required for the correct rendering of text for scripts such as Arabic and Indic. Without that support the rendering of text in those scripts is not just incorrect, but illegible.

The ICU OpenType layout engine is no longer actively developed and IBM, the project owner, intends to replace it with HarfBuzz in the ICU project. The JDK must follow suit, or else be left using an unsupported and out-dated library.

Description

Incorporate into the JDK a copy of the HarfBuzz library in the same manner as is done for ICU and other open-source libraries in the JDK such as libpng. Integrate that native library to support the Java APIs and implementation required for the layout of complex text as a replacement for ICU.

Alternatives

There are no viable open-source alternatives to HarfBuzz. Libraries such as Pango are now being re-implemented as wrappers around HarfBuzz.

Risks and Assumptions

There may be some minor rendering differences between the libraries, as a result of different implementations and a use of more up-to-date OpenType specifications.