Skip to main content

uharfbuzz

uharfbuzz Logo

Build + Deploy PyPI Documentation Status

Streamlined Cython bindings for the HarfBuzz shaping engine.

Example

import sys

import uharfbuzz as hb


fontfile = sys.argv[1]
text = sys.argv[2]

blob = hb.Blob.from_file_path(fontfile)
face = hb.Face(blob)
font = hb.Font(face)

buf = hb.Buffer()
buf.add_str(text)
buf.guess_segment_properties()

features = {"kern": True, "liga": True}
hb.shape(font, buf, features)

infos = buf.glyph_infos
positions = buf.glyph_positions

for info, pos in zip(infos, positions):
    gid = info.codepoint
    glyph_name = font.glyph_to_string(gid)
    cluster = info.cluster
    x_advance = pos.x_advance
    y_advance = pos.y_advance
    x_offset = pos.x_offset
    y_offset = pos.y_offset
    print(
        f"{glyph_name=} {gid=} {cluster=} "
        f"{x_advance=} {y_advance=} "
        f"{x_offset=} {y_offset=}"
    )

Installation

When building the uharfbuzz package, it automatically incorporates minimal HarfBuzz sources so you don't have to install the native HarfBuzz library.

However, if you want to use uharfbuzz with your system-provided HarfBuzz (e.g., if you built it from sources with custom configuration), you can set USE_SYSTEM_LIBS=1 environment variable (see example below).

USE_SYSTEM_LIBS=1 pip install uharfbuzz --no-binary :uharfbuzz:

harfbuzz installation is found using pkg-config, so you must have harfbuzz's .pc files in your system. If you've built it from sources, meson installs them automatically. Otherwise, you may want to install harfbuzz development package, like harfbuzz-devel on Fedora-derived distros.

How to make a release

Use git tag -a to make a new annotated tag, or git tag -s for a GPG-signed annotated tag, if you prefer.

Name the new tag with with a leading ‘v’ followed by three MAJOR.MINOR.PATCH digits, like in semantic versioning. Look at the existing tags for examples.

In the tag message write some short release notes describing the changes since the previous tag. The subject line will be the release name and the message body will be the release notes.

Finally, push the tag to the remote repository (e.g. assuming upstream is called origin):

$ git push origin v0.4.3

This will trigger the CI to build the distribution packages and upload them to the Python Package Index automatically, if all the tests pass successfully. The CI will also automatically create a new Github Release and use the content of the annotated git tag for the release notes.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uharfbuzz-0.56.1.tar.gz (39.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

uharfbuzz-0.56.1-pp311-pypy311_pp73-win_amd64.whl (1.5 MB view details)

Uploaded PyPyWindows x86-64

uharfbuzz-0.56.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

uharfbuzz-0.56.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

uharfbuzz-0.56.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

uharfbuzz-0.56.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded PyPymacOS 10.15+ x86-64

uharfbuzz-0.56.1-cp310-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

uharfbuzz-0.56.1-cp310-abi3-win32.whl (1.1 MB view details)

Uploaded CPython 3.10+Windows x86

uharfbuzz-0.56.1-cp310-abi3-pyemscripten_2026_0_wasm32.whl (915.7 kB view details)

Uploaded CPython 3.10+PyEmscripten 2026.0 wasm32

uharfbuzz-0.56.1-cp310-abi3-pyemscripten_2025_0_wasm32.whl (918.5 kB view details)

Uploaded CPython 3.10+PyEmscripten 2025.0 wasm32

uharfbuzz-0.56.1-cp310-abi3-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

uharfbuzz-0.56.1-cp310-abi3-musllinux_1_2_aarch64.whl (2.9 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

uharfbuzz-0.56.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

uharfbuzz-0.56.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

uharfbuzz-0.56.1-cp310-abi3-macosx_10_9_universal2.whl (3.3 MB view details)

Uploaded CPython 3.10+macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file uharfbuzz-0.56.1.tar.gz.

File metadata

  • Download URL: uharfbuzz-0.56.1.tar.gz
  • Upload date:
  • Size: 39.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for uharfbuzz-0.56.1.tar.gz
Algorithm Hash digest
SHA256 a0a6928ed66b166a931ebe5df9ac551b9c42983513030233dcd95b41fa827f97
MD5 44e342fdb202e836920e4ffe2de9ed85
BLAKE2b-256 607748457fb0c51f6f8c1e3082b126322e075d60fea60ee0df2b18cc050d9874

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1.tar.gz:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-pp311-pypy311_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 bf69321f01b6591e5428e2347b9d45c2b1176d773d9c1615e1ef5c14e7f3a715
MD5 ae3aacf257874b1d513fd33ffbf5b600
BLAKE2b-256 061ee9827bd7698734cdd943eaa6511b01eeea517c6dfe19bf6e03d6a102cee0

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-pp311-pypy311_pp73-win_amd64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de9df332293a2586dc29750da4362ae46eca45702881b4c9026d9fbfc1e68e28
MD5 af3c023267a231aab5149b6cf0d49fe1
BLAKE2b-256 8171bcf16cb7abc427db266e1acc703c5073bae0a2443ebf963daf6df45e3a04

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 31f7083df919e5b7f9e6fd79d821cf8ff3a8553d77c1b803eb922840a4e2a1ba
MD5 846308f7ddd6bc11228a43ce9c8ed7e6
BLAKE2b-256 24a491ec8b808ae70bad20bf16b959d908f6bad9a9231a0879abb6ab3efe1db6

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13f0795c1602f82ef8d377f93f736be52c639bb85cb34902e3f3c6d53d4839d5
MD5 7410f695a0e0f16a4b5ba90e0bde5ded
BLAKE2b-256 4d14a488b4f8d6316b9490b918bda4a3bbfa82b00482261919144134a7bd26be

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 be3fb99c924612dedc444b3375f45594b7f38638af30619c0ba5b8148cc66ec9
MD5 8631b3a65517335b7aeb78dee49a45b5
BLAKE2b-256 d5aed257d944f85b50449f331a35f401dca3061b0175df4e64aa62216543a13a

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: uharfbuzz-0.56.1-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for uharfbuzz-0.56.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ee99ae2389d4f8c5651962d65bf8fe9296c781598e3f697ba26d51c4b20527f9
MD5 26854f56887699b21406880cdff3cd07
BLAKE2b-256 e3c937cf8d1cfb45696bb88ee65805910d5f2d4784d6bd196a755ed3a305c40f

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-cp310-abi3-win_amd64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-cp310-abi3-win32.whl.

File metadata

  • Download URL: uharfbuzz-0.56.1-cp310-abi3-win32.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for uharfbuzz-0.56.1-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 e46e1979bf7b62f06ae791a3bca32bc447ce31663d03191f778780e119456613
MD5 b3122f4ac176c5e9f0e231fc26f85306
BLAKE2b-256 a4d5ce8e4ac36d303450f8e698540ed8e73377e8141457c00bedb4246229847c

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-cp310-abi3-win32.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-cp310-abi3-pyemscripten_2026_0_wasm32.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-cp310-abi3-pyemscripten_2026_0_wasm32.whl
Algorithm Hash digest
SHA256 c68aa9e123f700afe7f3a156e0b82ae29b958e5548ed9ecdef7e23c6d6d462c7
MD5 e09f048bfc0e2e8e4269f08a822960c5
BLAKE2b-256 5283f6cbbffccca65f75f20497f61ae64f1801f55a098d4fbbe0a84e1093f710

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-cp310-abi3-pyemscripten_2026_0_wasm32.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-cp310-abi3-pyemscripten_2025_0_wasm32.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-cp310-abi3-pyemscripten_2025_0_wasm32.whl
Algorithm Hash digest
SHA256 90bb8a2662550a9ae600e57455bbc577289577f187c8ae0c9766cca2f175a542
MD5 8b91db96ddba10f0786a37b98084c96b
BLAKE2b-256 635bba44a1c9e7f048d73fa7595ca82f685b2756943733ea9f0da8bd9b100c22

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-cp310-abi3-pyemscripten_2025_0_wasm32.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 869587d571ff107fb1eb56393b7fd7b8e2bddefc85ea1db6dec89c889a0533bc
MD5 ea2bc14115e8d100ef701dbd926c05d8
BLAKE2b-256 ffc5d9ccfeba5ac868d58a448cacc3783a20f6770406caaacd94c7d119e70385

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8cd1e7e1efe47fe1aa3dfe421f83f6c7c2b7f5055e24187ab1954c2c65173781
MD5 030f8ce8cc4d79f431837a6c0047e583
BLAKE2b-256 71d468cb48f26e3982dfcae40019c987d808db3a2b9092564cf68249e321d5ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-cp310-abi3-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ee214044c2023fb1f8f2ab56fd0d4a3db3b5dbd335ce3e4bdbabc3cb19f205d
MD5 c298adc500d8f6d917285e9b996b6fec
BLAKE2b-256 fc8663845c6dc49e0af4abec05ecf0de012a8865ed0740e6916a3453d3a17f55

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4cfe28e67e7e63363aaf6cf7ed61517d35347316f2bcf5a54df2ca8282cdb29a
MD5 9248993b803c2c9d627eb7c9808d3bb0
BLAKE2b-256 5ac00b2c477170ba8011671e8c7a1361329c593a837d97e88b3240ea19afff06

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uharfbuzz-0.56.1-cp310-abi3-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for uharfbuzz-0.56.1-cp310-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d2fcfafe2eac8497fa3c78462babbeddcfd50980b263859248a93fe8bb222507
MD5 cfed3cd8303b7c23fc8c75b77df190f1
BLAKE2b-256 3bf8e9b50519563943d597cd8721a2583a5295ad59f26e4cbd74d9c85f1e777b

See more details on using hashes here.

Provenance

The following attestation bundles were made for uharfbuzz-0.56.1-cp310-abi3-macosx_10_9_universal2.whl:

Publisher: ci.yml on harfbuzz/uharfbuzz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.56.1 This release

15 files

0.56.0

15 files

0.55.0

13 files

0.54.1

13 files

0.54.0

13 files

0.53.7

13 files

0.53.6

13 files

0.53.3

13 files

0.53.2

13 files

0.53.1

13 files

0.53.0

13 files

0.52.0

13 files

0.51.7

69 files

0.51.6

78 files

0.51.5

83 files

0.51.4

83 files

0.51.3

83 files

0.51.2

83 files

0.51.1

83 files

0.51.0

65 files

0.50.2

70 files

0.50.0

62 files

0.49.0

62 files

0.48.0

62 files

0.47.0

62 files

0.46.0

62 files

0.45.0

58 files

0.44.0

58 files

0.43.0

58 files

0.42.0

58 files

0.41.1

58 files

0.41.0

58 files

0.40.1

58 files

0.40.0

58 files

0.39.5

68 files

0.39.3

61 files

0.39.1

58 files

0.39.0

58 files

0.38.0

58 files

0.37.3

58 files

0.37.2

51 files

0.37.1.post1

51 files

0.37.1

45 files

0.37.0

42 files

0.36.0

42 files

0.35.0

42 files

0.34.0

42 files

0.33.0

42 files

0.32.0

42 files

0.31.0

42 files

0.30.0

36 files

0.29.0

36 files

0.28.0

36 files

0.27.0

36 files

0.26.0

36 files

0.25.0

36 files

0.24.1

36 files

0.24.0

33 files

0.23.0

33 files

0.22.0

33 files

0.21.0

33 files

0.20.0

33 files

0.19.0

43 files

0.18.0

30 files

0.17.1

24 files

0.17.0

17 files

0.16.1

17 files

0.16.0

10 files

0.15.0

17 files

0.14.0

16 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page