Embedded libraries

RoboFont is built on top of several font-related Python libraries which are embedded in RoboFont and can be used in your own scripts. Their APIs are available out-of-the-box – no additional installation is required.

Vanilla

Vanilla is a toolkit for creating windows, dialogs and other native macOS UI elements with Python.

FontTools

FontTools is a library for manipulating binary fonts (OpenType, TrueType, etc) in Python. It includes many useful tools for engineering fonts, for example:

TTX
converting binary fonts to the .ttx XML format for editing, and convert them back from TTX to .otf or .ttf
pyftsubset
reducing binary fonts by removing glyphs, features, font info, kerning, etc.
ufoLib
reading and writing UFO files

Other embedded libraries

The following libraries are also embedded in RoboFont:

booleanOperations
performing boolean operations on contours
compositor
laying out text with support for OpenType features
cu2qu
converting cubic bezier curves to quadratic
defcon
providing base functionality for font objects
defconAppKit
creating UIs for font editing applications
dialogKit
creating UIs that work across different font editors
extractor
extracting data from font binaries into UFO objects
feaPyFoFum
writing OpenType features dynamically
fontMath
interpolating glyphs, fonts and other kinds of font data
fontPens
a collection of classes implementing the pen protocol
glyphConstruction
building glyphs from other glyphs
glyphNameFormatter
generating glyph name lists from unicode data
mutatorMath
interpolating in multiple dimensions
ufoNormalizer
normalizing XML and other data inside UFOs
ufo2fdk
generating OTFs from UFOs with the AFDKO
ufo2svg
converting UFOs to SVG fonts
ufoProcessor
generating instances from UFO masters and designspace
woffTools
verifying and examining WOFF files

Standard libraries

All standard Python modules are also available in RoboFont. Check the The Python Standard Library for the complete list of modules and documentation.

External libraries

Locally installed third-party packages are also accessible inside RoboFont. Make sure to add them to the site-packages folder of the same version of Python as the one embedded in RoboFont (Python 3.6.4).

Check the Python Package Index (PyPI) for an extensive list of third-party packages available. You can also create your own libraries.

Last edited on 04/07/2019