Ebrahim Byagowi | 5015156 | 2020-08-02 10:43:25 +0430 | [diff] [blame] | 1 | [](https://github.com/harfbuzz/harfbuzz/workflows/linux-ci/badge.svg) |
Khaled Hosny | fa432a1 | 2021-06-05 04:06:58 +0200 | [diff] [blame] | 2 | [](https://circleci.com/gh/harfbuzz/harfbuzz/tree/main) |
Ebrahim Byagowi | e67cb50 | 2019-08-20 13:30:34 +0430 | [diff] [blame] | 3 | [](https://oss-fuzz-build-logs.storage.googleapis.com/index.html) |
Khaled Hosny | c881027 | 2022-04-22 01:01:06 +0200 | [diff] [blame] | 4 | [](https://scan.coverity.com/projects/harfbuzz) |
Khaled Hosny | b2d3173 | 2022-04-22 00:47:37 +0200 | [diff] [blame] | 5 | [](https://www.codacy.com/gh/harfbuzz/harfbuzz/dashboard?utm_source=github.com&utm_medium=referral&utm_content=harfbuzz/harfbuzz&utm_campaign=Badge_Grade) |
Khaled Hosny | fa432a1 | 2021-06-05 04:06:58 +0200 | [diff] [blame] | 6 | [](https://codecov.io/gh/harfbuzz/harfbuzz) |
Ebrahim Byagowi | cfafee5 | 2019-10-02 09:22:46 +0330 | [diff] [blame] | 7 | [](https://repology.org/project/harfbuzz/versions) |
Behdad Esfahbod | 52784da | 2014-10-01 17:57:43 -0400 | [diff] [blame] | 8 | |
Khaled Hosny | 9622337 | 2022-04-25 04:14:03 +0200 | [diff] [blame] | 9 | # HarfBuzz |
| 10 | |
| 11 | HarfBuzz is a text shaping engine. It primarily supports [OpenType][1], but also |
| 12 | [Apple Advanced Typography][2]. HarfBuzz is used in Android, Chrome, |
| 13 | ChromeOS, Firefox, GNOME, GTK+, KDE, LibreOffice, OpenJDK, PlayStation, Qt, |
| 14 | XeTeX, and other places. |
Owen Taylor | 80a1582 | 2000-12-20 04:41:36 +0000 | [diff] [blame] | 15 | |
Behdad Esfahbod | 5b21eff | 2011-05-25 14:49:35 -0400 | [diff] [blame] | 16 | For bug reports, mailing list, and other information please visit: |
| 17 | |
| 18 | http://harfbuzz.org/ |
Owen Taylor | 80a1582 | 2000-12-20 04:41:36 +0000 | [diff] [blame] | 19 | |
rsheeter | fa576ce | 2019-05-08 09:53:58 -0700 | [diff] [blame] | 20 | For license information, see [COPYING](COPYING). |
Ebrahim Byagowi | a13c074 | 2017-11-21 09:52:18 +0330 | [diff] [blame] | 21 | |
Khaled Hosny | 9622337 | 2022-04-25 04:14:03 +0200 | [diff] [blame] | 22 | ## Documentation |
| 23 | |
| 24 | For user manual as well as API documentation, check: https://harfbuzz.github.io |
| 25 | |
| 26 | ## Download |
| 27 | |
| 28 | For tarball releases of HarfBuzz, look [here][3]. At the same place you |
| 29 | will also find Win32/Win64 binary bundles that include libharfbuzz DLL, |
| 30 | hb-view.exe, hb-shape.exe, and all dependencies. |
| 31 | |
| 32 | The canonical source tree is available on [github][4]. |
| 33 | |
| 34 | The API that comes with `hb.h` will not change incompatibly. Other, peripheral, |
| 35 | headers are more likely to go through minor modifications, but again, we do our |
| 36 | best to never change API in an incompatible way. We will never break the ABI. |
| 37 | |
| 38 | If you are not sure whether Pango or HarfBuzz is right for you, read [Pango vs |
| 39 | HarfBuzz][5]. |
| 40 | |
| 41 | ## Development |
| 42 | |
rsheeter | fa576ce | 2019-05-08 09:53:58 -0700 | [diff] [blame] | 43 | For build information, see [BUILD.md](BUILD.md). |
Roderick Sheeter | 00946ca | 2019-05-08 09:42:35 -0700 | [diff] [blame] | 44 | |
Behdad Esfahbod | 3a93946 | 2019-06-17 20:10:36 -0700 | [diff] [blame] | 45 | For custom configurations, see [CONFIG.md](CONFIG.md). |
| 46 | |
Behdad Esfahbod | 01337e7 | 2022-06-04 06:01:52 -0600 | [diff] [blame] | 47 | For testing and profiling, see [TESTING.md](TESTING.md). |
Roderick Sheeter | 00946ca | 2019-05-08 09:42:35 -0700 | [diff] [blame] | 48 | |
Khaled Hosny | 9622337 | 2022-04-25 04:14:03 +0200 | [diff] [blame] | 49 | To get a better idea of where HarfBuzz stands in the text rendering stack you |
| 50 | may want to read [State of Text Rendering][6], though, that document is many |
| 51 | years old. Here are a few presentation slides about HarfBuzz at the |
| 52 | Internationalization and Unicode Conference over the years: |
Ebrahim Byagowi | cfafee5 | 2019-10-02 09:22:46 +0330 | [diff] [blame] | 53 | |
Khaled Hosny | 9622337 | 2022-04-25 04:14:03 +0200 | [diff] [blame] | 54 | * November 2014, [Unicode, OpenType, and HarfBuzz: Closing the Circle][7], |
| 55 | * October 2012, [HarfBuzz, The Free and Open Text Shaping Engine][8], |
| 56 | * October 2009, [HarfBuzz: the Free and Open Shaping Engine][9]. |
| 57 | |
| 58 | Both development and user support discussion around HarfBuzz happens on the |
| 59 | [github][4]. |
| 60 | |
| 61 | To report bugs or submit patches please use [github][4] issues and |
| 62 | pull-requests. |
| 63 | |
| 64 | For a comparison of old vs new HarfBuzz memory consumption see [this][10]. |
| 65 | |
| 66 | <!--See past and upcoming [HarfBuzz Hackfests](https://freedesktop.org/wiki/Software/HarfBuzz/Hackfests/)!--> |
Ebrahim Byagowi | cfafee5 | 2019-10-02 09:22:46 +0330 | [diff] [blame] | 67 | |
Khaled Hosny | af41be6 | 2022-04-25 02:59:00 +0200 | [diff] [blame] | 68 | ## Name |
| 69 | |
| 70 | HarfBuzz (حرفباز) is my Persian translation of “[OpenType][1]”, |
| 71 | transliterated using the Latin script. It sports a second meaning, but that |
| 72 | ain’t translatable. |
| 73 | |
| 74 | > Background: Originally there was this font format called TrueType. People and |
| 75 | > companies started calling their type engines all things ending in Type: |
| 76 | > FreeType, CoolType, ClearType, etc. And then came OpenType, which is the |
| 77 | > successor of TrueType. So, for my OpenType implementation, I decided to stick |
| 78 | > with the concept but use the Persian translation. Which is fitting given that |
| 79 | > Persian is written in the Arabic script, and OpenType is an extension of |
| 80 | > TrueType that adds support for complex script rendering, and HarfBuzz is an |
| 81 | > implementation of OpenType complex text shaping. |
| 82 | |
Ebrahim Byagowi | cfafee5 | 2019-10-02 09:22:46 +0330 | [diff] [blame] | 83 | <details> |
Evgeniy Reizner | 9cd7681 | 2020-01-10 17:36:41 +0200 | [diff] [blame] | 84 | <summary>Packaging status of HarfBuzz</summary> |
Ebrahim Byagowi | cfafee5 | 2019-10-02 09:22:46 +0330 | [diff] [blame] | 85 | |
Evgeniy Reizner | 9cd7681 | 2020-01-10 17:36:41 +0200 | [diff] [blame] | 86 | [](https://repology.org/project/harfbuzz/versions) |
Ebrahim Byagowi | cfafee5 | 2019-10-02 09:22:46 +0330 | [diff] [blame] | 87 | |
| 88 | </details> |
Khaled Hosny | 9622337 | 2022-04-25 04:14:03 +0200 | [diff] [blame] | 89 | |
| 90 | [1]: https://docs.microsoft.com/en-us/typography/opentype/spec/ |
| 91 | [2]: https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6AATIntro.html |
| 92 | [3]: https://github.com/harfbuzz/harfbuzz/releases |
| 93 | [4]: https://github.com/harfbuzz/harfbuzz |
| 94 | [5]: http://mces.blogspot.com/2009/11/pango-vs-harfbuzz.html |
| 95 | [6]: http://behdad.org/text/ |
| 96 | [7]: https://goo.gl/FSIQuC |
| 97 | [8]: https://goo.gl/2wSRu |
| 98 | [9]: http://behdad.org/download/Presentations/slippy/harfbuzz_slides.pdf |
| 99 | [10]: https://goo.gl/woyty |