2
2
[ ![ macoOS CI Status] ( https://github.com/harfbuzz/harfbuzz/actions/workflows/macos-ci.yml/badge.svg )] ( https://github.com/harfbuzz/harfbuzz/actions/workflows/macos-ci.yml )
3
3
[ ![ Windows CI Status] ( https://github.com/harfbuzz/harfbuzz/actions/workflows/msvc-ci.yml/badge.svg )] ( https://github.com/harfbuzz/harfbuzz/actions/workflows/msvc-ci.yml )
4
4
[ ![ CircleCI Build Status] ( https://circleci.com/gh/harfbuzz/harfbuzz/tree/main.svg?style=svg )] ( https://circleci.com/gh/harfbuzz/harfbuzz/tree/main )
5
- [ ![ OSS-Fuzz Status] ( https://oss-fuzz-build-logs.storage.googleapis.com/badges/harfbuzz.svg )] ( https://oss-fuzz-build-logs.storage.googleapis.com/index.html )
5
+ [ ![ OSS-Fuzz Status] ( https://oss-fuzz-build-logs.storage.googleapis.com/badges/harfbuzz.svg )] ( https://oss-fuzz-build-logs.storage.googleapis.com/index.html#harfbuzz )
6
6
[ ![ Coverity Scan Build Status] ( https://scan.coverity.com/projects/15166/badge.svg )] ( https://scan.coverity.com/projects/harfbuzz )
7
7
[ ![ Packaging status] ( https://repology.org/badge/tiny-repos/harfbuzz.svg )] ( https://repology.org/project/harfbuzz/versions )
8
8
[ ![ OpenSSF Scorecard] ( https://api.securityscorecards.dev/projects/github.com/harfbuzz/harfbuzz/badge )] ( https://securityscorecards.dev/viewer/?uri=github.com/harfbuzz/harfbuzz )
@@ -35,13 +35,20 @@ will also find Win32/Win64 binary bundles that include `libharfbuzz` DLL,
35
35
` hb-view.exe ` , ` hb-shape.exe ` , and all dependencies.
36
36
37
37
The canonical source tree is available on [ github] [ 4 ] .
38
+ Both development and user support discussion around HarfBuzz happens on
39
+ [ github] [ 4 ] as well.
38
40
39
41
The API that comes with ` hb.h ` will not change incompatibly. Other, peripheral,
40
42
headers are more likely to go through minor modifications, but again, we do our
41
43
best to never change API in an incompatible way. We will never break the ABI.
42
44
43
- If you are not sure whether Pango or HarfBuzz is right for you, read [ Pango vs
44
- HarfBuzz] [ 5 ] .
45
+ The API and ABI are stable even across major version number jumps. In fact,
46
+ current HarfBuzz is API/ABI compatible all the way back to the 0.9.x series.
47
+ If one day we need to break the API/ABI, that would be called a new a library.
48
+
49
+ As such, we bump the major version number only when we add major new features,
50
+ the minor version when there is new API, and the micro version when there
51
+ are bug fixes.
45
52
46
53
## Development
47
54
@@ -51,26 +58,38 @@ For custom configurations, see [CONFIG.md](CONFIG.md).
51
58
52
59
For testing and profiling, see [ TESTING.md] ( TESTING.md ) .
53
60
61
+ For using with Python, see [ README.python.md] ( README.python.md ) . There is also [ uharfbuzz] ( https://github.com/harfbuzz/uharfbuzz ) .
62
+
54
63
For cross-compiling to Windows from Linux or macOS, see [ README.mingw.md] ( README.mingw.md ) .
55
64
65
+ To report bugs or submit patches please use [ github] [ 4 ] issues and pull-requests.
66
+
67
+ ### Developer documents
68
+
56
69
To get a better idea of where HarfBuzz stands in the text rendering stack you
57
70
may want to read [ State of Text Rendering 2024] [ 6 ] .
58
71
Here are a few presentation slides about HarfBuzz at the
59
72
Internationalization and Unicode Conference over the years:
60
73
61
- * November 2014, [ Unicode, OpenType, and HarfBuzz: Closing the Circle] [ 7 ] ,
62
- * October 2012, [ HarfBuzz, The Free and Open Text Shaping Engine] [ 8 ] ,
63
- * October 2009, [ HarfBuzz: the Free and Open Shaping Engine] [ 9 ] .
64
-
65
- Both development and user support discussion around HarfBuzz happens on the
66
- [ github] [ 4 ] .
74
+ - 2014 – [ Unicode, OpenType, and HarfBuzz: Closing the Circle] [ 7 ]
75
+ - 2012 – [ HarfBuzz, The Free and Open Text Shaping Engine] [ 8 ]
76
+ - 2016 – [ Ten Years of HarfBuzz] [ 20 ]
77
+ - 2009 – [ HarfBuzz: the Free and Open Shaping Engine] [ 9 ]
67
78
68
- To report bugs or submit patches please use [ github ] [ 4 ] issues and
69
- pull-requests.
79
+ More presentations and papers are available on [ behdad ] [ 11 ] 's website.
80
+ In particular, the following _ studies _ are relevant to HarfBuzz development:
70
81
71
- For a comparison of old vs new HarfBuzz memory consumption see [ this] [ 10 ] .
82
+ - 2025 – [ Subsetting] [ 21 ]
83
+ - 2025 – [ Caching] [ 12 ]
84
+ - 2025 – [ ` hb-decycler ` ] [ 13 ]
85
+ - 2022 – [ ` hb-iter ` ] [ 14 ]
86
+ - 2022 – [ A C library written in C++] [ 15 ]
87
+ - 2022 – [ The case of the slow ` hb-ft ` ` >h_advance ` function] [ 18 ]
88
+ - 2022 – [ PackTab: A static integer table packer] [ 16 ]
89
+ - 2020 – [ HarfBuzz OT+AAT "Unishaper"] [ 19 ]
90
+ - 2014 – [ Building the Indic Shaper] [ 17 ]
91
+ - 2012 – [ Memory Consumption] [ 10 ]
72
92
73
- <!-- See past and upcoming [HarfBuzz Hackfests](https://freedesktop.org/wiki/Software/HarfBuzz/Hackfests/)!-->
74
93
75
94
## Name
76
95
@@ -87,6 +106,8 @@ transliterated using the Latin script. It also means "talkative" or
87
106
> TrueType that adds support for complex script rendering, and HarfBuzz is an
88
107
> implementation of OpenType complex text shaping.
89
108
109
+ ## Distribution
110
+
90
111
<details >
91
112
<summary >Packaging status of HarfBuzz</summary >
92
113
@@ -98,9 +119,19 @@ transliterated using the Latin script. It also means "talkative" or
98
119
[ 2 ] : https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6AATIntro.html
99
120
[ 3 ] : https://github.com/harfbuzz/harfbuzz/releases
100
121
[ 4 ] : https://github.com/harfbuzz/harfbuzz
101
- [ 5 ] : http://mces.blogspot.com/2009/11/pango-vs-harfbuzz.html
102
122
[ 6 ] : http://behdad.org/text2024
103
- [ 7 ] : https://goo.gl/FSIQuC
104
- [ 8 ] : https://goo.gl/2wSRu
123
+ [ 7 ] : https://docs.google.com/presentation/d/1x97pfbB1gbD53Yhz6-_yBUozQMVJ_5yMqqR_D-R7b7I/preview
124
+ [ 8 ] : https://docs.google.com/presentation/d/1ySTZaXP5XKFg0OpmHZM00v5b17GSr3ojnzJekl4U8qI/preview
105
125
[ 9 ] : http://behdad.org/download/Presentations/slippy/harfbuzz_slides.pdf
106
- [ 10 ] : https://goo.gl/woyty
126
+ [ 10 ] : https://docs.google.com/document/d/12jfNpQJzeVIAxoUSpk7KziyINAa1msbGliyXqguS86M/preview
127
+ [ 11 ] : https://behdad.org/
128
+ [ 12 ] : https://docs.google.com/document/d/1_VgObf6Je0J8byMLsi7HCQHnKo2emGnx_ib_sHo-bt4/preview
129
+ [ 13 ] : https://docs.google.com/document/d/1Y-u08l9YhObRVObETZt1k8f_5lQdOix9TRH3zEXaoAw/preview
130
+ [ 14 ] : https://docs.google.com/document/d/1o-xvxCbgMe9JYFHLVnPjk01ZY_8Cj0vB9-KTI1d0nyk/preview
131
+ [ 15 ] : https://docs.google.com/document/d/18hI56KJpvXtwWbc9QSaz9zzhJwIMnrJ-zkAaKS-W-8k/preview
132
+ [ 16 ] : https://docs.google.com/document/d/1Xq3owVt61HVkJqbLFHl73il6pcTy6PdPJJ7bSouQiQw/preview
133
+ [ 17 ] : https://docs.google.com/document/d/1wMPwVNBvsIriamcyBO5aNs7Cdr8lmbwLJ8GmZBAswF4/preview
134
+ [ 18 ] : https://docs.google.com/document/d/1wskYbA-czBt57oH9gEuGf3sWbTx7bfOiEIcDs36-heo/preview
135
+ [ 19 ] : https://prezi.com/view/THNPJGFVDUCWoM20syev/
136
+ [ 20 ] : https://behdad.org/doc/harfbuzz10years-slides.pdf
137
+ [ 21 ] : https://docs.google.com/document/d/1_vZrt97OorJ0jA1YzJ29LRcGr3YGrNJANdOABjVZGEs/preview
0 commit comments