CFV and Project Proposal: HarfBuzz Integration Project

Steven R. Loomis steven.loomis at oracle.com
Thu Jul 25 20:56:23 UTC 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


I hereby propose the creation of the HarfBuzz Integration Project with

Steven R. Loomis as the Lead and 2d-dev at openjdk.java.net  as the sponsoring

Group(s).


I am the maintainer of the ICU Layout Engine, which is used for complex text

rendering since Java 1.2 ([1]). This package has not been actively developed

in quite some time, as is evidenced by recent performance, stability, and

security issues that have been corrected. Although it is used in a number of

other projects (both open source and otherwise), it has been a long standing

dream of many (or at least, several) to have a single open source layout
engine

building on the
legacy of FreeType, Qt, Pango and ICU’s layout engines. This

has been realized
by the HarfBuzz [2] project.


What are some reasons JDK should switch to HarfBuzz?

* Significantly faster.  Khaled Hosny reports 10x for his Amiri font, and

LibreOffice agrees.

* Significantly better compatibility with Uniscribe - extensively tested

* Much better script coverage.  Including new-spec Indic.

* Actively maintained, active development community.

* Written from the ground up to be secure.

* It's rapidly becoming the only important OpenType layout engine used by

other projects. If you aren't using Microsoft's Uniscribe, Apple, or Adobe…

you are probably using HarfBuzz.

* The maintainer of the ICU Layout Engine currently in the JDK (me)
recommends

it.

* Independently tested by Mozilla, Android, ChromeOS.

* In use by Android 4.3 (released today), Qt, Pango (GNOME),  Firefox,
Chromium,
LibreOffice, XeTeX and others

* HarfBuzz has an ICU compatibility library which will make it easier to
switch

back and forth between ICU and HarfBuzz. It involves dropping in different

headers and recompiling/relinking.

* HarfBuzz has licenses compatible with both OpenJDK and commercial uses

 ("HarfBuzz is licensed under the so-called "Old MIT" license. ")



What is being proposed:

1. The first step is to add configure switches which allow HarfBuzz's ICU

 compatibility layer to be chosen instead of ICU at build time.   This
can be done

 as a prototype against JDK 8.

2. The goal would be to integrate this into mainstream JDK (building against

 HarfBuzz by default) in JDK 9.

3. Future goals could include:

  a. HarfBuzz-specific code optimizations (calling into HB instead of
the ICU wrapper)

  b. HarfBuzz-specific API?

Note: there are some issues right now with dropping in different ICU
versions

( see the "libicu" discussion currently on 2d-dev for details. )


Initial authors: Steven R. Loomis, Omair Majid, Phil Race

Initial reviewers: Phil Race


Votes are due by: Votes are due by Thu Aug 1 12:00 GMT 2013.


Only current OpenJDK Members [3] are eligible to vote on this

motion.  Votes must be cast in the open on the discuss list.

Replying to this message is sufficient if your mail program

honors the Reply-To header, by replying to to this mailing list.


For Lazy Consensus voting instructions, see [4].



Steven R. Loomis


[1]https://ssl.icu-project.org/docs/papers/international_text_in_jdk_1.2/ 
- 1997

[2]http://www.freedesktop.org/wiki/Software/HarfBuzz/

[3]http://openjdk.java.net/census#members

[4]http://openjdk.java.net/projects/#new-project-vote


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJR8ZD3AAoJEB9mVNwYCrNGIgMIAJMQ8X3f8Ct+0PVznTcvhSFa
ludME9hQ1TjiqCAUMV5i5jWHBy3vOD3DQMcEcCUhtGCltXVdGq4xqs2K/hNXNaYj
4uF17gl+KdcPvxOV5ttF7/gBXgVVwqyn9aoMYAYWKH9CFVdoR1TgQbcp/eU4RZxU
V6PR4+PSX35XVzomhlbtqUiJxBFJoMEd91QFVTr5YfLnOetLS9qNMhYT6f/Xf5RN
z8D+xptdpKzFo3Sn7CdZcBv+Zih1IsHYkHCI79+1erm6gB1HCq5zOteYPCLggVu5
FhdZW/assdW4OOqvux/dxA1acHb7t/HM3Jt0t+ATs8RVcio2t5vvs6GLOIcVIwk=
=ZemN
-----END PGP SIGNATURE-----




More information about the discuss mailing list