harfbuzz/harfbuzz

HarfBuzz text shaping engine

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 23 minutes ago
Added to GitGenius on February 10th, 2025
Created on July 14th, 2012
Open Issues & Pull Requests: 88 (+0)
Number of forks: 766
Total Stargazers: 5,996 (+0)
Total Subscribers: 99 (+0)

Issue Activity (beta)

Open issues: 54
New in 7 days: 2
Closed in 7 days: 2
Avg open age: 425 days
Stale 30+ days: 44
Stale 90+ days: 42

Recent activity

Opened in 7 days: 2
Closed in 7 days: 1
Comments in 7 days: 6
Events in 7 days: 7

Top labels

  • Chrome (4)
  • enhancement (4)
  • documentation (3)
  • invalid (3)
  • subset (3)
  • aat (2)
  • help wanted (2)
  • meson (2)

Repository Insights (GitGenius)

Median issue/PR response: 2.5 hours
Mean response time: 164.5 days
90th percentile: 520.1 days
Tracked items: 426

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 35% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Only 10% of issues opened in the past year have been closed. Three people close 97% of everything that gets resolved.

Detailed Description

HarfBuzz is a text shaping engine written in C++ that has evolved into a comprehensive font platform for rendering complex scripts and typography on modern screens. The project describes itself as the "ffmpeg of text shaping," indicating its role as a foundational tool in the text rendering ecosystem. It primarily supports OpenType font format while also providing support for Apple Advanced Typography, making it compatible with the major font technologies in use today.

The core functionality is provided through libharfbuzz, which handles text shaping along with draw and paint APIs, with highly configurable compilation options. The library integrates with multiple platform-specific backends including FreeType, macOS CoreText, Windows Uniscribe, DirectWrite, GDI, GLib, and Graphite2. A companion library, libharfbuzz-subset, enables font subsetting and variable-font instancing. Additional auxiliary libraries extend functionality through ICU Unicode integration, Cairo rendering support, and GObject bindings for language interoperability.

The project includes experimental libraries for advanced rendering capabilities. libharfbuzz-raster provides glyph rasterization to bitmaps with color font support, libharfbuzz-vector outputs glyphs to vector formats like SVG, and libharfbuzz-gpu encodes glyph outlines for GPU rasterization using the Slug algorithm with shader sources in GLSL, WGSL, MSL, and HLSL. The repository also provides command-line tools including hb-shape for text shaping, hb-view for rendering to images, hb-subset for font optimization, hb-info for metadata display, and specialized tools for raster and vector output.

Enhancement requests, invalid reports, and documentation improvements represent the most frequently labeled issue categories.

HarfBuzz prioritizes robustness, correctness, and performance in that order. The project maintains strict API and ABI stability, with the current version remaining compatible back to the 0.9.x series. The library is widely deployed across major platforms and applications including Android, Chrome, Firefox, Flutter, GNOME, Qt, LibreOffice, Adobe Creative Suite, Microsoft Edge, and gaming engines like Godot and Unreal Engine. An interactive playground at harfbuzz-world.cc allows users to experiment with shaping, subsetting, rasterization, and GPU rendering directly in a web browser. The project provides amalgamated source files for simplified builds and maintains comprehensive documentation alongside developer resources including presentations and technical studies on text rendering, caching strategies, and subsetting techniques.

harfbuzz
by
harfbuzzharfbuzz/harfbuzz

Repository Details

Fetching additional details & charts...