{"package":"fonttools","ecosystem":"pypi","latest_version":"4.66.0","description":"Tools to manipulate font files","license":"MIT","license_risk":"permissive","commercial_use_notes":"Permissive: commercial closed-source use OK; preserve the copyright notice.","homepage":"http://github.com/fonttools/fonttools","repository":"http://github.com/fonttools/fonttools","downloads_weekly":43197251,"health":{"score":92,"risk":"low","breakdown":{"maintenance":25,"popularity":20,"security":25,"maturity":15,"community":7,"popularity_floor":0},"deprecated":false,"max_score":100},"vulnerabilities":{"count":0,"critical":0,"high":0,"medium":0,"low":0,"details":[]},"versions":{"latest":"4.66.0","total_count":237,"recent":["4.58.0","4.58.1","4.58.2","4.58.3","4.58.4","4.58.5","4.59.0","4.59.1","4.59.2","4.60.0","4.60.1","4.60.2","4.61.0","4.61.1","4.62.0","4.62.1","4.63.0","4.64.0","4.65.0","4.66.0"]},"metadata":{"deprecated":false,"deprecated_message":null,"maintainers_count":1,"first_published":null,"last_published":"2026-09-23T17:56:49.236145Z","dependencies_count":28,"dependencies":["lxml>=4.0; extra == \"lxml\"","brotli>=1.0.1; platform_python_implementation == \"CPython\" and extra == \"woff\"","brotlicffi>=0.8.0; platform_python_implementation != \"CPython\" and extra == \"woff\"","zopfli>=0.1.4; extra == \"woff\"","unicodedata2>=18.0.0; python_version <= \"3.15\" and extra == \"unicode\"","lz4>=1.7.4.2; extra == \"graphite\"","scipy; platform_python_implementation != \"PyPy\" and extra == \"interpolatable\"","munkres; platform_python_implementation == \"PyPy\" and extra == \"interpolatable\"","pycairo; extra == \"interpolatable\"","matplotlib; extra == \"plot\"","sympy; extra == \"symfont\"","xattr; sys_platform == \"darwin\" and extra == \"type1\"","skia-pathops>=0.5.0; extra == \"pathops\"","uharfbuzz>=0.45.0; extra == \"repacker\"","lxml>=4.0; extra == \"all\"","brotli>=1.0.1; platform_python_implementation == \"CPython\" and extra == \"all\"","brotlicffi>=0.8.0; platform_python_implementation != \"CPython\" and extra == \"all\"","zopfli>=0.1.4; extra == \"all\"","unicodedata2>=18.0.0; python_version <= \"3.15\" and extra == \"all\"","lz4>=1.7.4.2; extra == \"all\"","scipy; platform_python_implementation != \"PyPy\" and extra == \"all\"","munkres; platform_python_implementation == \"PyPy\" and extra == \"all\"","pycairo; extra == \"all\"","matplotlib; extra == \"all\"","sympy; extra == \"all\"","xattr; sys_platform == \"darwin\" and extra == \"all\"","skia-pathops>=0.5.0; extra == \"all\"","uharfbuzz>=0.45.0; extra == \"all\""]},"github_stats":{"stars":5259,"forks":543,"open_issues":395,"is_archived":false,"pushed_at":"2026-09-23T17:27:00Z","subscribers_count":116},"bundle":null,"typescript":null,"known_issues":{"bugs_count":2,"bugs_severity":{"high":1,"medium":1},"status_breakdown":{"fixed":2},"link":"/api/bugs/pypi/fonttools","scope":"all","details":[{"title":"fonttools XML External Entity Injection (XXE) Vulnerability","severity":"high","status":"fixed","affected_version":"4.28.2","fixed_version":"4.43.0","url":"https://github.com/fonttools/fonttools/security/advisories/GHSA-6673-4983-2vx5"},{"title":"fontTools is Vulnerable to Arbitrary File Write and XML injection in fontTools.varLib","severity":"medium","status":"fixed","affected_version":"4.33.0","fixed_version":"4.60.2","url":"https://github.com/fonttools/fonttools/security/advisories/GHSA-768j-98cg-p3fv"}]},"historical_compromise":null,"recommendation":{"action":"safe_to_use","issues":[],"use_version":"4.66.0","version_hint":null,"summary":"fonttools@4.66.0 is safe to use (health: 92/100)"},"version_scoped":null,"_meta":{"endpoint":"check","tier":"full","philosophy":"DepScope is free. Use the cheapest endpoint that answers your real question.","cheaper_alternatives":[{"endpoint":"/api/exists/pypi/fonttools","tokens_estimated":12,"use_when":"you only need to know if the package exists (hallucination guard)"},{"endpoint":"/api/health/pypi/fonttools","tokens_estimated":80,"use_when":"you only need a 0-100 score for go/no-go (>=70 = safe)"},{"endpoint":"/api/prompt/pypi/fonttools","tokens_estimated":280,"use_when":"you want a plain-text LLM-friendly brief instead of JSON"},{"endpoint":"POST /api/check_bulk","tokens_estimated":60,"use_when":"you have 5+ packages to check; sends one round-trip instead of N"}],"docs":"https://depscope.dev/integrate"},"_cache":"hit","_response_ms":0}