Graphite is a "smart font" system developed specifically to handle the complexities of lesser-known languages of the world.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
contrib Huge commit tidying up trailing whitespace Mar 9, 2018
debian-src
doc Make the CMakeLists.txt file a tiny bit more readable Sep 5, 2018
gr2fonttest Partial merge branch 'covscan_warning_2' of git://github.com/caolanm/… Sep 13, 2018
include/graphite2 Prepare for release Aug 15, 2018
python
src
tests
.gitattributes Huge commit tidying up trailing whitespace Mar 9, 2018
.gitignore
CMakeLists.txt Add cmake code to retarget fuzzing engine for oss-fuzz support Sep 18, 2018
COPYING Huge commit tidying up trailing whitespace Mar 9, 2018
ChangeLog Prepare for release Aug 15, 2018
Graphite.cmake
LICENSE
README.md
Todo.txt
graphite2.pc.in Change build to graphite2 also include files Dec 8, 2010
setup.py Set python package version from C header Sep 6, 2018

README.md

Graphite engine

Project CI status

OS Intel 64 bit Intel 32 bit Arm 32 bit
Linux Build Status Build Status Build Status
Windows Build Status Build Status

What is Graphite?

Graphite is a system that can be used to create “smart fonts” capable of displaying writing systems with various complex behaviors. A smart font contains not only letter shapes but also additional instructions indicating how to combine and position the letters in complex ways.

Graphite was primarily developed to provide the flexibility needed for minority languages which often need to be written according to slightly different rules than well-known languages that use the same script.

Examples of complex script behaviors Graphite can handle include:

  • contextual shaping
  • ligatures
  • reordering
  • split glyphs
  • bidirectionality
  • stacking diacritics
  • complex positioning
  • shape aware kerning
  • automatic diacritic collision avoidance

See examples of scripts with complex rendering.

Graphite system overview

The Graphite system consists of:

  • A rule-based programming language Graphite Description Language (GDL) that can be used to describe the behavior of a writing system
  • A compiler for that language
  • A rendering engine that can serve as the layout component of a text-processing application

Graphite renders TrueType fonts that have been extended by means of compiling a GDL program.

Further technical information is available on the Graphite technical overview page.