tuf
A secure updater framework for Python
What it is and what it does
TUF is a reference implementation of The Update Framework specification, a security framework designed to protect software update systems from supply chain attacks, key compromise, and repository tampering. It provides two main APIs: a low-level metadata API for safe access to TUF metadata and serialization, and an ngclient implementation for fetching and validating updates. The package handles the cryptographic validation of update metadata according to the TUF specification, ensuring that even if a repository is compromised or signing keys are stolen, attackers cannot silently distribute malicious updates.
The framework is production-ready and used by major organizations and open-source projects (including Uptane for automotive over-the-air updates). It's hosted by the Linux Foundation as part of the Cloud Native Computing Foundation. The reference implementation is intended as both a working tool and a readable guide for those implementing TUF in other languages or environments.
Use it for:
- Implement secure update delivery for Python applications or services that need protection against repository compromise
- Validate software update metadata according to TUF specification in a supply chain security pipeline
- Build a custom update system that delegates trust to multiple signing keys with threshold signatures
- Integrate TUF metadata validation into a package manager or software distribution system
- Audit and verify the integrity of update metadata in an existing update infrastructure
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
TUF is a Python reference implementation of The Update Framework specification for securing software update systems against supply chain attacks and repository compromise.
Yes. TUF is a mature, actively maintained reference implementation of a CNCF-backed security standard used in production by major organizations. It has low install friction, no known vulnerabilities, permissive licensing, and supports current Python versions. Install it if you need to secure software updates or validate update metadata according to the TUF specification.
Install
tuf on PyPI
pip
pip install tufuv
uv add tufpoetry
poetry add tufInstalling tuf
Before you install
Low install friction with only two runtime dependencies (securesystemslib and urllib3). Active maintenance with a recent release 88 days ago and continuous commits; supports current Python versions (3.10 through 3.14).
License in practice
Dual-licensed under Apache-2.0 OR MIT (permissive), so you may choose either license when using or redistributing the package.
Quickstart
pip install tuf
from tuf.ngclient import Updater
from tuf.api.metadata import Root
# Initialize updater with metadata and targets directories
updater = Updater(
metadata_dir='./metadata',
targets_dir='./targets',
target_base_url='https://example.com/targets',
metadata_base_url='https://example.com/metadata'
)
Requires Python 3.10 or later; you must have securesystemslib and urllib3 installed as runtime dependencies.
Verify before relying
- Whether the ngclient API is suitable for production use or still considered experimental
- Performance characteristics when validating large metadata hierarchies or many targets
- Whether the repository module is stable enough for production adoption
Package facts
| License | Apache-2.0 OR MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — securesystemslib, urllib3 |
| Maintenance | actively maintained — 88 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 961,921/month — #4,631 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tuf-7.0.0-py3-none-any.whl
Keywords: authentication, compromise, key, revocation, secure, update, updater
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
securesystemslibSecuresystemslib provides a cryptography…
permissive · top 5,000 on PyPI
asgi-csrfASGI middleware that protects web applications…
permissive · top 15,000 on PyPI
sendsafelyIntegrates SendSafely secure file transfer and…
permissive · top 15,000 on PyPI
PyOTPPyOTP generates and verifies one-time passwords…
permissive · top 1,000 on PyPI
itsdangerousItsDangerous cryptographically signs data to…
permissive · top 1,000 on PyPI
pipfileProvides a design specification and parser for…
permissive · top 15,000 on PyPI
tf-kerasTF-Keras is the pure-TensorFlow implementation…
permissive · top 5,000 on PyPI
srpImplements the Secure Remote Password (SRP)…
permissive · top 15,000 on PyPI
std-uritemplateExpands RFC 6570 URI Templates (Level 4) by…
permissive · top 5,000 on PyPI
secure-smtplibProvides secure SMTP subclasses with TLS/SSL…
unclear · top 15,000 on PyPI