HarfBuzzSharp 14.2.1.200-rc.1.26426.14
HarfBuzzSharp
HarfBuzzSharp provides .NET bindings for the HarfBuzz OpenType text shaping engine. It converts Unicode text into correctly selected and positioned glyphs for complex scripts, ligatures, kerning, variable fonts, bidirectional text, and advanced typographic features.
Capabilities
- Shape text for Arabic, Indic, Southeast Asian, and other complex writing systems.
- Apply OpenType features, language, script, and direction settings.
- Inspect glyph IDs, clusters, advances, and offsets.
- Read OpenType variation axes, names, metrics, color glyph data, and layout information.
- Run on Windows, macOS, Linux, Android, iOS, Mac Catalyst, tvOS, Tizen, and WebAssembly.
- Integrate with SkiaSharp rendering through
SkiaSharp.HarfBuzz.
Get started
Install the package:
dotnet add package HarfBuzzSharp
Shape a string using an OpenType font:
using HarfBuzzSharp;
using var blob = Blob.FromFile("NotoSansArabic-Regular.ttf");
using var face = new Face(blob, 0);
using var font = new Font(face);
font.SetScale(face.UnitsPerEm, face.UnitsPerEm);
using var buffer = new HarfBuzzSharp.Buffer();
buffer.AddUtf8("مرحبا بالعالم");
buffer.GuessSegmentProperties();
font.Shape(buffer);
foreach (var glyph in buffer.GlyphInfos)
Console.WriteLine($"Glyph {glyph.Codepoint}, cluster {glyph.Cluster}");
For drawing shaped text with SkiaSharp, install SkiaSharp.HarfBuzz and use SKShaper:
dotnet add package SkiaSharp.HarfBuzz
Linux and WebAssembly: add the matching
HarfBuzzSharp.NativeAssets.*package directly to the application project when the target does not receive native assets transitively. See the package deployment guide.
Documentation and resources
- HarfBuzzSharp API reference on Microsoft Learn
- SkiaSharp.HarfBuzz API reference
- HarfBuzz documentation
- SkiaSharp package and deployment guide
- SkiaSharp samples
Feedback and contributing
HarfBuzzSharp is part of the open-source SkiaSharp project from Microsoft. Use GitHub Discussions for questions, file bugs and feature requests in the issue tracker, and read the contributing guide to get involved.
HarfBuzzSharp is released under the MIT license.
Showing the top 20 packages that depend on HarfBuzzSharp.
| Packages | Downloads |
|---|---|
|
SkiaSharp.HarfBuzz
This package adds text shaping support to SkiaSharp via HarfBuzz.
|
66 |
|
SkiaSharp.HarfBuzz
This package adds text shaping support to SkiaSharp via HarfBuzz.
|
63 |
|
SkiaSharp.HarfBuzz
This package adds text shaping support to SkiaSharp via HarfBuzz.
|
62 |
|
SkiaSharp.HarfBuzz
This package adds text shaping support to SkiaSharp via HarfBuzz.
|
61 |
|
SkiaSharp.HarfBuzz
This package adds text shaping support to SkiaSharp via HarfBuzz.
|
60 |
.NET Framework 4.6.2
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.1.200-rc.1.26426.14)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1.200-rc.1.26426.14)
- System.Memory (>= 4.6.3)
.NET Standard 2.1
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1.200-rc.1.26426.14)
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.1.200-rc.1.26426.14)
.NET Standard 2.0
- System.Memory (>= 4.6.3)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1.200-rc.1.26426.14)
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.1.200-rc.1.26426.14)
.NET 10.0
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1.200-rc.1.26426.14)
.NET 10.0
- HarfBuzzSharp.NativeAssets.tvOS (>= 14.2.1.200-rc.1.26426.14)
.NET 10.0
- HarfBuzzSharp.NativeAssets.Tizen (>= 14.2.1.200-rc.1.26426.14)
.NET 10.0
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.1.200-rc.1.26426.14)
.NET 10.0
- HarfBuzzSharp.NativeAssets.MacCatalyst (>= 14.2.1.200-rc.1.26426.14)
.NET 10.0
- HarfBuzzSharp.NativeAssets.iOS (>= 14.2.1.200-rc.1.26426.14)
.NET 10.0
- HarfBuzzSharp.NativeAssets.Android (>= 14.2.1.200-rc.1.26426.14)
.NET 10.0
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1.200-rc.1.26426.14)
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.1.200-rc.1.26426.14)
.NET 9.0
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1.200-rc.1.26426.14)
.NET 9.0
- HarfBuzzSharp.NativeAssets.Tizen (>= 14.2.1.200-rc.1.26426.14)
.NET 9.0
- HarfBuzzSharp.NativeAssets.tvOS (>= 14.2.1.200-rc.1.26426.14)
.NET Framework 4.8
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1.200-rc.1.26426.14)
- System.Memory (>= 4.6.3)
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.1.200-rc.1.26426.14)
.NET 6.0
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.1.200-rc.1.26426.14)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1.200-rc.1.26426.14)
.NET 9.0
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.1.200-rc.1.26426.14)
- HarfBuzzSharp.NativeAssets.Win32 (>= 14.2.1.200-rc.1.26426.14)
.NET 9.0
- HarfBuzzSharp.NativeAssets.Android (>= 14.2.1.200-rc.1.26426.14)
.NET 9.0
- HarfBuzzSharp.NativeAssets.iOS (>= 14.2.1.200-rc.1.26426.14)
.NET 9.0
- HarfBuzzSharp.NativeAssets.MacCatalyst (>= 14.2.1.200-rc.1.26426.14)
.NET 6.0
- HarfBuzzSharp.NativeAssets.Tizen (>= 14.2.1.200-rc.1.26426.14)
.NET 9.0
- HarfBuzzSharp.NativeAssets.macOS (>= 14.2.1.200-rc.1.26426.14)
| Version | Downloads | Last updated |
|---|---|---|
| 14.2.1.200-rc.1.26426.14 | 4 | 08/28/2026 |
| 14.2.1.2 | 10 | 08/10/2026 |
| 14.2.1.1 | 25 | 07/16/2026 |
| 14.2.1 | 28 | 07/09/2026 |
| 14.2.1-rc.1.1 | 21 | 07/01/2026 |
| 14.2.1-preview.2.1 | 21 | 06/26/2026 |
| 14.2.1-preview.1.1 | 20 | 07/03/2026 |
| 14.2.0 | 20 | 06/26/2026 |
| 14.2.0-rc.1.2 | 31 | 06/14/2026 |
| 14.2.0-preview.1.1 | 27 | 06/16/2026 |
| 8.3.1.6-preview.3.1 | 31 | 05/26/2026 |
| 8.3.1.6-preview.2.1 | 31 | 05/13/2026 |
| 8.3.1.6-preview.1.1 | 37 | 05/01/2026 |
| 8.3.1.5 | 26 | 05/26/2026 |
| 8.3.1.5-preview.1.1 | 40 | 04/23/2026 |
| 8.3.1.4-preview.1.1 | 43 | 02/14/2026 |
| 8.3.1.3 | 40 | 02/09/2026 |
| 8.3.1.3-preview.3.1 | 46 | 02/09/2026 |
| 8.3.1.3-preview.2.3 | 47 | 01/29/2026 |
| 8.3.1.3-preview.1 | 59 | 10/23/2025 |
| 8.3.1.2 | 57 | 10/23/2025 |
| 8.3.1.2-preview.1 | 62 | 10/23/2025 |
| 8.3.1.1 | 62 | 10/23/2025 |
| 8.3.1.1-stable.1 | 61 | 10/23/2025 |
| 8.3.1.1-preview.1.2 | 59 | 10/23/2025 |
| 8.3.1-preview.2.3 | 55 | 10/23/2025 |
| 8.3.1-preview.1.2 | 65 | 10/23/2025 |
| 8.3.0.1 | 61 | 10/17/2025 |
| 8.3.0 | 57 | 10/23/2025 |
| 8.3.0-preview.6.1 | 56 | 10/23/2025 |
| 8.3.0-preview.5.4 | 59 | 10/23/2025 |
| 8.3.0-preview.4.1 | 62 | 10/23/2025 |
| 8.3.0-preview.3.1 | 59 | 10/23/2025 |
| 8.3.0-preview.2.1 | 59 | 10/23/2025 |
| 8.3.0-preview.1.8 | 58 | 10/23/2025 |
| 8.3.0-preview.0.132 | 58 | 10/23/2025 |
| 7.3.0.3 | 73 | 10/23/2025 |
| 7.3.0.3-preview.2.2 | 58 | 10/23/2025 |
| 7.3.0.3-preview.1.1 | 57 | 10/23/2025 |
| 7.3.0.2 | 57 | 10/23/2025 |
| 7.3.0.2-preview.1.1 | 60 | 10/23/2025 |
| 7.3.0.1 | 59 | 10/23/2025 |
| 7.3.0 | 60 | 10/23/2025 |
| 7.3.0-preview.1.2 | 54 | 10/23/2025 |
| 2.8.2.5 | 61 | 10/23/2025 |
| 2.8.2.4 | 60 | 10/23/2025 |
| 2.8.2.4-preview.96 | 62 | 10/23/2025 |
| 2.8.2.4-preview.95 | 56 | 10/23/2025 |
| 2.8.2.4-preview.89 | 60 | 10/23/2025 |
| 2.8.2.4-preview.84 | 59 | 10/23/2025 |
| 2.8.2.4-preview.82 | 57 | 10/23/2025 |
| 2.8.2.4-preview.76 | 59 | 10/23/2025 |
| 2.8.2.4-preview.70 | 62 | 10/23/2025 |
| 2.8.2.3 | 58 | 10/23/2025 |
| 2.8.2.2 | 61 | 10/23/2025 |
| 2.8.2.2-preview.8 | 64 | 10/23/2025 |
| 2.8.2.1 | 61 | 10/23/2025 |
| 2.8.2.1-preview.108 | 61 | 10/23/2025 |
| 2.8.2.1-preview.104 | 58 | 10/23/2025 |
| 2.8.2.1-preview.91 | 58 | 10/23/2025 |
| 2.8.2.1-preview.79 | 62 | 10/23/2025 |
| 2.8.2.1-preview.75 | 64 | 10/23/2025 |
| 2.8.2.1-preview.71 | 59 | 10/23/2025 |
| 2.8.2.1-preview.63 | 66 | 10/23/2025 |
| 2.8.2.1-preview.1 | 67 | 10/23/2025 |
| 2.8.2 | 57 | 10/23/2025 |
| 2.8.2-preview.266 | 69 | 10/23/2025 |
| 2.8.2-preview.256 | 59 | 10/23/2025 |
| 2.8.2-preview.254 | 58 | 10/23/2025 |
| 2.8.2-preview.232 | 67 | 10/23/2025 |
| 2.8.2-preview.209 | 57 | 10/23/2025 |
| 2.8.2-preview.187 | 63 | 10/23/2025 |
| 2.8.2-preview.179 | 57 | 10/23/2025 |
| 2.8.2-preview.178 | 62 | 10/23/2025 |
| 2.8.2-preview.155 | 57 | 10/23/2025 |
| 2.8.2-preview.152 | 57 | 10/23/2025 |
| 2.8.2-preview.150 | 61 | 10/23/2025 |
| 2.8.2-preview.145 | 65 | 10/23/2025 |
| 2.8.2-preview.140 | 57 | 10/23/2025 |
| 2.8.2-preview.139 | 58 | 10/23/2025 |
| 2.8.2-preview.127 | 59 | 10/23/2025 |
| 2.6.1.9 | 56 | 10/23/2025 |
| 2.6.1.9-preview.120 | 54 | 10/23/2025 |
| 2.6.1.9-preview.9 | 58 | 10/23/2025 |
| 2.6.1.9-preview.6 | 61 | 10/23/2025 |
| 2.6.1.9-preview.5 | 58 | 10/23/2025 |
| 2.6.1.9-preview.2 | 60 | 10/23/2025 |
| 2.6.1.8 | 63 | 10/23/2025 |
| 2.6.1.8-preview.93 | 57 | 10/23/2025 |
| 2.6.1.8-preview.90 | 58 | 10/23/2025 |
| 2.6.1.8-preview.61 | 65 | 10/23/2025 |
| 2.6.1.7 | 55 | 10/23/2025 |
| 2.6.1.7-preview.40 | 57 | 10/23/2025 |
| 2.6.1.7-preview.36 | 56 | 10/23/2025 |
| 2.6.1.7-preview.33 | 55 | 10/23/2025 |
| 2.6.1.7-preview.24 | 63 | 10/23/2025 |
| 2.6.1.7-preview.18 | 59 | 10/23/2025 |
| 2.6.1.6 | 65 | 10/23/2025 |
| 2.6.1.6-preview.19 | 56 | 10/23/2025 |
| 2.6.1.6-preview.18 | 60 | 10/23/2025 |
| 2.6.1.6-preview.9 | 61 | 10/23/2025 |
| 2.6.1.5 | 59 | 10/23/2025 |
| 2.6.1.5-preview.33 | 62 | 10/23/2025 |
| 2.6.1.5-preview.24 | 66 | 10/23/2025 |
| 2.6.1.5-preview.14 | 54 | 10/23/2025 |
| 2.6.1.5-preview.12 | 67 | 10/23/2025 |
| 2.6.1.5-preview.3 | 62 | 10/23/2025 |
| 2.6.1.4 | 59 | 10/23/2025 |
| 2.6.1.4-preview.2 | 64 | 10/23/2025 |
| 2.6.1.3 | 59 | 10/23/2025 |
| 2.6.1.2 | 57 | 10/23/2025 |
| 2.6.1.1 | 58 | 10/23/2025 |
| 2.6.1.1-preview.60 | 60 | 10/23/2025 |
| 2.6.1.1-preview.50 | 57 | 10/23/2025 |
| 2.6.1.1-preview.45 | 60 | 10/23/2025 |
| 2.6.1.1-preview.43 | 58 | 10/23/2025 |
| 2.6.1.1-preview.39 | 57 | 10/23/2025 |
| 2.6.1.1-preview.29 | 61 | 10/23/2025 |
| 2.6.1.1-preview.21 | 57 | 10/23/2025 |
| 2.6.1.1-preview.17 | 61 | 10/23/2025 |
| 2.6.1.1-preview.9 | 59 | 10/23/2025 |
| 2.6.1 | 58 | 10/23/2025 |
| 2.6.1-rc.172 | 56 | 10/23/2025 |
| 2.6.1-rc.170 | 58 | 10/23/2025 |
| 2.6.1-rc.169 | 60 | 10/23/2025 |
| 2.6.1-rc.165 | 66 | 10/23/2025 |
| 2.6.1-rc.153 | 56 | 10/23/2025 |
| 2.5.3-rc.147 | 56 | 10/23/2025 |
| 1.4.6.2 | 58 | 10/23/2025 |
| 1.4.6.2-preview28 | 62 | 10/23/2025 |
| 1.4.6.1 | 64 | 10/23/2025 |
| 1.4.6 | 57 | 10/23/2025 |
| 1.4.5 | 60 | 10/23/2025 |