ufo2ft
A bridge between UFOs and FontTools.
What it is and what it does
ufo2ft is a Python library that bridges UFO font source files and OpenType binary compilation. It provides two main functions—compileOTF and compileTTF—that take a UFO object and produce a ready-to-use font file without needing Adobe's Font Development Kit. The library is built on fonttools and handles the conversion pipeline, including optional glyph filtering, curve type conversion (cubic to quadratic for TrueType), component decomposition, and automatic feature generation for kerning and mark positioning.
The package is designed for font designers and build pipelines that want to automate font compilation as part of a design workflow. It reads UFO metadata (family name, style name, naming data) and can be customized through UFO lib keys to control filter behavior, conversion error tolerances, and glyph inclusion/exclusion. It also supports both Adobe OpenType feature syntax and MTI/Monotype format for advanced table definitions.
Use it for:
- Automate font compilation in a font design CI/CD pipeline without installing the Adobe FDK
- Programmatically generate OTF and TTF variants from a single UFO source during font development
- Apply glyph transformations (anchor propagation, overlap removal, component flattening) before compilation
- Convert cubic PostScript outlines to quadratic TrueType curves with configurable error tolerance
- Generate kerning and mark positioning features automatically from UFO anchor and kerning data
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Compiles OpenType font binaries (OTF and TTF) directly from UFO (Unified Font Object) source files without requiring the Adobe FDK, using fonttools as its backend.
Yes. ufo2ft is actively maintained, has no known vulnerabilities, carries a permissive MIT license, and solves a real problem for font developers: compiling production fonts without the Adobe FDK. Install friction is low. It is suitable for both one-off font builds and integrated into automated workflows.
Install
ufo2ft on PyPI
pip
pip install ufo2ftuv
uv add ufo2ftpoetry
poetry add ufo2ftInstalling ufo2ft
Before you install
Low friction: pure Python wheel with four runtime dependencies (booleanoperations, cffsubr, fontmath, fonttools). Actively maintained with a release 31 days ago and recent commits; no known vulnerabilities.
License in practice
MIT license permits unrestricted use, modification, and distribution in both open-source and commercial contexts with minimal obligations.
Quickstart
from ufo2ft import compileOTF, compileTTF
otf = compileOTF(ufo_object)
otf.save('MyFont-Regular.otf')
ttf = compileTTF(ufo_object)
ttf.save('MyFont-Regular.ttf')
Requires a UFO object as input; the package does not load UFO files directly from disk.
Verify before relying
- Whether the package handles all UFO specification edge cases or only common workflows
- Performance characteristics when compiling large or complex font files
- Compatibility with UFO files created by specific design applications beyond documented examples
- Whether defcon is a required dependency or optional for typical workflows
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — booleanoperations, cffsubr, fontmath, fonttools |
| Maintenance | actively maintained — 31 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 99,468/month — #13,021 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ufo2ft-3.9.0-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
cffsubrSubroutinizes CFF (Compact Font Format) font…
permissive · top 15,000 on PyPI
fonttoolsfonttools manipulates font files in multiple…
permissive · top 1,000 on PyPI
glyphsLibConverts Glyphs source files (.glyphs) to UFO…
permissive · top 15,000 on PyPI
ufoLib2ufoLib2 provides a lightweight, programmatic…
permissive · top 15,000 on PyPI
cu2quConverts cubic Bézier curves to quadratic…
permissive · top 15,000 on PyPI
defconDefcon provides lightweight, UFO-based objects…
permissive · top 15,000 on PyPI
fontbakeryFont Bakery is a command-line tool that checks…
unclear · top 15,000 on PyPI
freetype-pyProvides Python bindings to the FreeType font…
permissive · top 5,000 on PyPI
pymupdf-fontsProvides a collection of optional fonts…
unclear · top 15,000 on PyPI
pyfigletRenders ASCII text as ASCII art using a variety…
permissive · top 5,000 on PyPI