[OpenJDK 2D-Dev] CFV and Project Proposal: HarfBuzz Integration Project (#2)

Steven R. Loomis steven.loomis at oracle.com
Wed Sep 18 23:00:25 UTC 2013


Voting for this proposal [1] is long closed.

Yes:  8   ( I did not count myself, would that make it an implied 9? )


[1] http://mail.openjdk.java.net/pipermail/discuss/2013-July/003105.html


On 26/07/13 12:02, Steven Loomis wrote:
> CFV and Project Proposal: HarfBuzz Integration Project (#2)
>
> PROPOSAL
>
> 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.
>
> WHY SHOULD OPENJDK SWITCH TO HARFBUZZ?
>
>   * Significantly faster.
>     Khaled Hosny reports 10x for his Amiri font, and LibreOffice agrees.
>
>   * More compatible with Uniscribe.
>     Extensively tested with a wide variety of fonts and data.
>
>   * Much better script coverage.
>     Including new-spec Indic and others.
>
>   * Actively maintained, active development community.
>
>   * Written from the ground up to be secure.
>
>   * Rapidly becoming the standard reusable OpenType layout engine.
>     If a project isn’t using an in-house engine such as Microsoft’s Uniscribe, or
>     those by Apple, Adobe, etc., it is probably using or will use HarfBuzz.
>
>   * I, the maintainer of the ICU Layout Engine currently in the OpenJDK (srl)
>     recommend it. I’m also already involved in the HarfBuzz project and so can
>     make sure that OpenJDK’s use is well supported moving forward.
>
>   * Independently tested by Mozilla, Android, ChromeOS.
>
>   * In use by Android 4.3 (released this week), 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. ")
>
> SCOPE OF PROJECT AND ROADMAP
>
> 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. This would allow side-by-side comparisons of HB vs. ICU behavior from
>     functional, performance, and platform compatibility perspectives.
>
> 3. Next, we would integrate this into mainstream (building against HarfBuzz by
>     default) in JDK 9.
>
> 3. Future work could include HarfBuzz-specific code optimizations, including
>     calling into HarfBuzz directly instead of via the ICU wrapper.
>     
> 4. Also to be explored would be any new API and features in the JDK which might
>     be possible because of the HarfBuzz engine.
>
> Note: there are some issues right now with dropping in different ICU versions -
> see the “libicu” discussion currently on 2d-dev for details.
>
> WHO WOULD BE INVOLVED IN THIS PROJECT?
>
> Initial authors: Steven R. Loomis, Omair Majid, Phil Race
> Initial reviewers: Phil Race
> 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 (IBM)
>
>
> REFERENCES
>
> [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




More information about the 2d-dev mailing list