FYI: This was sent to the [email protected] mailing list. It has not been approved for posting yet, but I wanted this list to be aware of it.
-s -------- Original Message -------- Subject: CFV and Project Proposal: HarfBuzz Integration Project Date: Thu, 25 Jul 2013 13:56:23 -0700 From: Steven R. Loomis <[email protected]> To: [email protected] CC: Behdad Esfahbod <[email protected]>, Omair Majid <[email protected]> I hereby propose the creation of the HarfBuzz Integration Project with Steven R. Loomis as the Lead and [email protected] 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
