AFDKO: building OpenType fonts from PostScript and TrueType data
Adobe Font Development Kit for OpenType
At a glance
- What is it?
- The Adobe Font Development Kit for OpenType is a set of tools for building OpenType font files from PostScript and TrueType font data, installed from PyPI and invoked through a unified afdko command.
- Who is it for?
- Adopt AFDKO if you build or modify OpenType fonts and need Adobe's toolchain for feature compilation and font manipulation; skip it if you only need a font editor or a pure-Python library; verify first that your Python version is 3.10 or later and that your platform has pre-built wheels or the required C and C++ build tools.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 43 days ago.
- What is it written in?
- Mainly PostScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What the AFDKO is and who reaches for it
The Adobe Font Development Kit for OpenType is a set of tools for building OpenType font files from PostScript and TrueType font data. It is aimed at font developers and type engineers who work with source data and need command-line tooling for compiling features, manipulating fonts, and validating output. The repository contains data files, Python scripts, and sources for the command-line programs that comprise the kit. AFDKO 5.0.0 was a major release featuring a unified command interface using afdko <command> syntax, variable font support in addfeatures that replaces makeotfexe, and extensive C to C++ codebase modernization.
How the toolkit is structured and invoked
The project is a Python package with C and C++ components behind some commands. Since 5.0.0, commands are invoked through the unified afdko <command> syntax, although deprecated wrappers such as addfeatures, detype1, mergefonts, rotatefont, and sfntdiff still exist in the afdko._deprecated module. The README notes that the C to C++ port is considered experimental and may contain significant bugs, even though the new code passes the test suite and can do more or less what the older code did. The AFDKO Overview document and the project wiki provide the detailed description of what is included. The repository also ships data files and documentation alongside the Python and compiled components.
Installing AFDKO into a virtual environment
The AFDKO requires Python 3.10 or later. The README strongly recommends a Python virtual environment and installing with python -m pip install rather than calling pip directly.
python -m venv afdko_env
source afdko_env/bin/activate
python -m pip install afdkoOn Windows the activation command is afdko_env\Scripts\activate.bat instead of the source line. The recommended flow creates the environment, activates it, then installs the afdko package from PyPI. Installing inside a virtual environment prevents conflicts between AFDKO dependencies and other globally installed modules. Updating uses python -m pip install -U afdko, pre-release versions use the --pre flag, and removal uses python -m pip uninstall afdko.
Building AFDKO from source on your platform
When there is no pre-built wheel for a platform, pip builds the C and C++ portions from source. That requires C and C++ development tools and libuuid. On macOS the tools are installed with xcode-select --install. On Ubuntu 17.10 LTS or later the README lists apt-get commands for python3.9, python-pip, python-dev, and uuid-dev. On Windows, Visual Studio 2017 or later is needed. To build from source, clone the repository, install the wheel module, change to the top-level directory, and run python -m pip install .. The project uses scikit-build-core, setuptools-scm, and cython as build requirements according to pyproject.toml.
Licensing and dependency implications
The project uses the Apache 2.0 open source license. Dependencies are listed in requirements.txt and installed automatically with pip. Most dependencies are BSD or MIT licensed, with the exception of tqdm, which is MPL 2.0. Anyone redistributing or modifying the toolkit should read the full license text and dependency licenses. This is a license fact, not legal advice.
Where AFDKO is the wrong tool
AFDKO is a font build toolkit, not a font editor or a general graphics library. It will not help with designing glyphs, and it assumes PostScript or TrueType source data and an OpenType output target. The C to C++ modernization is explicitly experimental and may have significant bugs, so users who need the stability of the older code should verify against their own font sources. The lack of a pre-built wheel on a platform means a full compiler toolchain is required, which raises the setup cost on Linux distributions not covered by the README.
How it compares with a pure-Python font workflow
AFDKO combines Python scripts with compiled command-line programs, which gives broader capability at the cost of a heavier toolchain and platform-specific build steps. Teams already invested in Python-only tooling should weigh whether they need the extra commands or can stay within a lighter stack. The migration guide in NEWS.md is the place to check before moving a team from 4.x to 5.x.
Maintenance, release cadence, and upgrade cost
The last push was on 2026-09-10, and the repository is not archived. Recent releases include 5.0.1 on 2026-05-18, 5.0.0 on 2026-03-23, and 4.0.3 on 2025-12-05. Upgrading from 4.x to 5.0.0 requires attention because 5.0.0 introduced the unified afdko <command> syntax and replaced makeotfexe with variable font support in addfeatures; the release notes and migration guide are in NEWS.md. Runtime requirements are Python 3.10 or later plus the dependency set pinned in requirements.txt.
Editorial conclusion
Adopt AFDKO if you build or modify OpenType fonts and need Adobe's toolchain for feature compilation and font manipulation; skip it if you only need a font editor or a pure-Python library; verify first that your Python version is 3.10 or later and that your platform has pre-built wheels or the required C and C++ build tools.
Frequently asked questions
What is AFDKO used for?
AFDKO is a set of tools for building OpenType font files from PostScript and TrueType font data. It provides command-line programs and Python scripts for font developers.
How do I install AFDKO?
Create a virtual environment, activate it, then run python -m pip install afdko. The README strongly recommends using python -m pip install inside a venv.
What Python version does AFDKO require?
AFDKO requires Python 3.10 or later. Build from source may require additional platform tooling when no pre-built wheel is available.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/adobe-type-tools-afdko)Was this useful?