cffsubr
Standalone CFF subroutinizer based on the AFDKO tx tool
Decision gist · record as of 2026-08-14
Yes, if you work with CFF fonts and need to reduce file size. The package is actively maintained, has no security issues, uses a permissive license, and solves a specific problem well. Install friction is moderate but manageable; the single dependency is standard in font tooling. Not necessary if you don't work with CFF fonts or already use other font optimization tools.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; fontTools must be installed as a runtime dependency.
- Medium install friction due to compiled wheels for multiple platforms; actively maintained with recent commits and production-stable status.
- Single runtime dependency on fontTools.
License · maintenance · safety
Apache 2.0 (permissive) — Apache 2.0 permissive license allows use in commercial and open-source projects with minimal restrictions; attribution required.
last release 2025-12-05 (252 days) · last repo commit 2026-03-25 · 8 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 94,721 downloads/mo, #13,311 on PyPI
Alternatives
Verify before relying
pip install cffsubr
from cffsubr import subroutinize
subroutinize('input.otf', 'output.otf')- Whether the package provides a command-line interface in addition to Python API
- Performance characteristics and typical compression ratios achieved
- Whether it handles variable fonts or only static CFF outlines
What it is and what it does
cffsubr is a standalone tool for optimizing CFF (Compact Font Format) font files by identifying repeated glyph outline patterns and consolidating them into subroutines. This reduces font file size without changing the visual appearance of glyphs. It is based on the AFDKO tx tool from Adobe and wraps that functionality for Python users.
The package depends only on fontTools and runs on Python 3.10 and later across Windows, macOS, and Linux. It is actively maintained and marked as production-stable. The project is small but focused, with no known security vulnerabilities.
Use it for
- Optimize web fonts before deployment to reduce bandwidth and improve page load times
- Compress font files in font libraries or design tools that work with CFF outlines
- Batch-process font collections to standardize file sizes across a design system
- Prepare fonts for embedded systems or devices with storage constraints
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with CFF fonts and need to reduce file size.
The package is actively maintained, has no security issues, uses a permissive license, and solves a specific problem well. Install friction is moderate but manageable; the single dependency is standard in font tooling. Not necessary if you don't work with CFF fonts or already use other font optimization tools.
Install
cffsubr on PyPI
Before you install
Medium install friction due to compiled wheels for multiple platforms; actively maintained with recent commits and production-stable status. Single runtime dependency on fontTools.
Requires Python 3.10 or later; fontTools must be installed as a runtime dependency.
License in practice
Apache 2.0 permissive license allows use in commercial and open-source projects with minimal restrictions; attribution required.
Quickstart
pip install cffsubr
from cffsubr import subroutinize
subroutinize('input.otf', 'output.otf')
Verify before relying
- Whether the package provides a command-line interface in addition to Python API
- Performance characteristics and typical compression ratios achieved
- Whether it handles variable fonts or only static CFF outlines
Package facts
| License | Apache 2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagefontTools |
| Maintenance | Actively maintained 252 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 94,721 / month, #13,311 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: Other EnvironmentIntended Audience :: DevelopersIntended Audience :: End Users/DesktopLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Multimedia :: GraphicsTopic :: Text Processing :: Fonts |
Evidence: cffsubr-0.4.0-py3-none-macosx_10_9_universal2.whl; cffsubr-0.4.0-py3-none-manylinux_2_28_aarch64.whl; cffsubr-0.4.0-py3-none-manylinux_2_28_x86_64.whl; cffsubr-0.4.0-py3-none-win32.whl; cffsubr-0.4.0-py3-none-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “CFF font subroutinizer”
- cffsubrSubroutinizes CFF (Compact Font Format) font files by identifying and…
- fontbakeryFont Bakery is a command-line tool that checks the quality of font…
- defconDefcon provides lightweight, UFO-based objects for font editing…
Give your agent the search over MCP, or paste the wish link into any chat.
More Text Processing packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyparsing provides a library for building text parsers directly in Python code using composable grammar classes, handling quoted strings, whitespace variation, and embedded comments without regex or lex/yacc.
Install it if you need to parse text or define grammars programmatically.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
RapidFuzz provides fast fuzzy string matching using Levenshtein Distance and related metrics, implemented mostly in C++ with Python bindings for rapid similarity scoring and approximate string matching.
Install it if you need fuzzy string matching; it's a solid replacement for FuzzyWuzzy with better licensing and performance.
tinycss2 parses CSS strings into token and block objects, and generates CSS strings from those objects, following the CSS Syntax Level 3 specification without enforcing specific properties or values.
Install it if your project requires CSS tokenization or syntax manipulation.
See also ufo2ft · cu2qu · uharfbuzz · pymupdf-fonts · weblate-fonts · ufoLib2 · fontbakery · pyfiglet · defcon