CFV and Project Proposal: HarfBuzz Integration Project

Steven R. Loomis steven.loomis at oracle.com
Thu Jul 25 21:22:03 UTC 2013


Thank you Omair.

( I'm re-posting the original message- I wasn't subscribed to this list
originally.  Moderator, you can delete my pending post if you wish. )

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


( Sorry about the formatting. I'll handcraft the SMTP transaction next
time.)

On 7/25/13 2:09 p.m., Omair Majid wrote:
> Vote: Yes
>
> On 07/25/2013 04:56 PM, Steven R. Loomis wrote:
>> 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).




More information about the discuss mailing list