Graphite (smart font technology)
Graphite is a programmable Unicode-compliant smart font technology and rendering system developed by SIL International as free software, distributed under the terms of the GNU Lesser General Public License and the Common Public License. Capabilities and comparison to other smart font technologies. Graphite is based on the TrueType font format, and adds three of its own tables. It allows for a variety of rendering rules, including ligatures, glyph substitution, glyph insertion, glyph rearrangement, anchoring diacritics, kerning, and justification. Graphite rules may be sensitive to the context. For instance, there might be a glyph substitution rule  that replaces every non-final "s" by an "ſ". In a Graphite font, all smart rendering information resides within the font file. In order to display the Graphite smart rendering, an application needs only Graphite support, but no built-in knowledge about the writing system’s rendering. This makes Graphite especially suited for minority writing systems that cannot rely on applications to provide built-in rendering information. In this regard, Graphite is similar to AAT and different from OpenType which requires applications to provide built-in rendering information. Graphite support. Graphite was originally implemented on Windows. It has been  ported to Linux. It is also available on Mac OS X Snow Leopard although with AAT, macOS already provides a technology suitable for minority scripts. Applications that support Graphite include the SIL WorldPad, XeTeX, OpenOffice.org (since version 3.2, except for the macOS version), LibreOffice (formerly except for the macOS version, since version 5.3, Graphite is available on all platforms). It was built into Thunderbird 11 and Firefox 11, and was turned on by default since version 22, but was disabled in Firefox version 45.0.1 and re-enabled in version 49.0. Graphite support can be added to applications on Linux with  the package pango-graphite and on Windows with the experimental add-on MultiScribe.