{"id":23195,"library":"afdko","title":"Adobe Font Development Kit for OpenType (AFDKO)","description":"AFDKO is Adobe's font development toolkit for building and manipulating OpenType font files. It provides command-line tools and a Python API for tasks such as compiling OpenType feature code (feaLib), merging fonts, and validating fonts. The current version is 5.0.0, requiring Python >=3.10. Releases follow Adobe's internal schedule; check GitHub for latest.","status":"active","version":"5.0.0","language":"python","source_language":"en","source_url":"https://github.com/adobe-type-tools/afdko","tags":["font","opentype","adobe","fonttools","type design"],"install":[{"cmd":"pip install afdko","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"feaLib is part of fonttools, not directly in afdko. AFDKO uses fonttools internally.","wrong":"from afdko.feaLib import *","symbol":"feaLib","correct":"from fontTools.feaLib import *"},{"note":"The build function is in fontTools.TTX or fontTools.varLib. afdko provides command-line scripts, not a Python build function.","wrong":"from afdko import build","symbol":"build","correct":"from fontTools import ttx"}],"quickstart":{"code":"# AFDKO is primarily used via command-line tools.\n# To compile OpenType feature code, use the makeotf command after installing.\n# In Python, you typically use fontTools:\n\nfrom fontTools.feaLib.builder import addOpenTypeFeaturesFromString\nfrom fontTools.ttLib import TTFont\n\n# Load a font, add features, save\nfont = TTFont('input.ttf')\nfeatures = \"\"\"\n    feature liga {\n        sub f i by f_i;\n    } liga;\n\"\"\"\naddOpenTypeFeaturesFromString(font, features)\nfont.save('output.ttf')\n","lang":"python","description":"Quick example using fontTools feaLib (distributed with afdko but imported from fontTools)."},"warnings":[{"fix":"Use `from fontTools.feaLib` instead.","message":"AFDKO v3.0+ moved the Python API from afdko to fonttools. Direct imports from afdko (e.g., `from afdko.feaLib`) will fail.","severity":"breaking","affected_versions":">=3.0"},{"fix":"Replace `tx` calls with `fonttools varLib`, `fonttools ttx`, or similar.","message":"The `tx` tool (used for CFF manipulation) is deprecated; use `fonttools` subcommands instead.","severity":"deprecated","affected_versions":">=4.0"},{"fix":"Upgrade Python to 3.10 or later, or pin afdko to 4.x if needed.","message":"Python 3.10+ required. AFDKO 5.x drops support for Python <3.10.","severity":"breaking","affected_versions":"5.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from fontTools.feaLib import builder` instead.","cause":"Trying to import feaLib from afdko instead of fontTools.","error":"ModuleNotFoundError: No module named 'afdko.feaLib'"},{"fix":"AFDKO is a separate package. Import fontTools directly for font operations.","cause":"Mistakenly trying to access afdko as a submodule of fontTools.","error":"AttributeError: module 'fontTools' has no attribute 'afdko'"},{"fix":"Ensure you have compiled AFDKO binaries. On Windows, consider using WSL or precompiled binaries from GitHub releases.","cause":"The makeotf binary is not executable or not present (common on Windows or when installing via pip without build tools).","error":"OSError: [Errno 8] Exec format error: '/path/to/makeotf'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}