Skip to content

Commit 089f01f

Browse files
committed
README: describe the current state of the project refactor
Signed-off-by: Joshua Lock <jlock@vmware.com>
1 parent 237c6b2 commit 089f01f

1 file changed

Lines changed: 30 additions & 3 deletions

File tree

README.md

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,36 @@ This repository is the **reference implementation** of
1010
[The Update Framework (TUF)](https://theupdateframework.github.io/).
1111
It is written in Python and intended to conform to version 1.0 of the
1212
[TUF specification](https://theupdateframework.github.io/specification/latest/).
13-
This implementation is in use in production systems, but is also intended to be
14-
a readable guide and demonstration for those working on implementing TUF in
15-
their own languages, environments, or update systems.
13+
14+
The repository currently includes two implementations:
15+
1) A *legacy implementation*, with
16+
[`tuf/client/updater.py`](tuf/client/updater.py) implementing the detailed
17+
client workflow and [`tuf/repository_tool.py`](tuf/repository_tool.py)
18+
providing a high-level interface for repository operations.
19+
The legacy implementation is in use in production systems, but is [no longer
20+
being actively worked on](docs/adr/0002-pre-1-0-deprecation-strategy.md).
21+
2) A *modern implementation*. We are in the process of rewriting the reference
22+
implementation in [modern Python](docs/adr/0001-python-version-3-6-plus.md)
23+
to both: a) address scalability and integration issues identified in
24+
supporting integration into the Python Package Index (PyPI), and other
25+
large-scale repositories, and b) to ensure maintainability of the project.
26+
This implementation consists of:
27+
* a "low-level" metadata API, designed to provide easy and safe access to
28+
TUF metadata and handle (de)serialization from/to files, provided in the
29+
[`tuf/api/metadata.py`](tuf/api/metadata.py) module.
30+
* an implementation of the detailed client workflow built on top of the
31+
metadata API, provided in the
32+
[`tuf/ngclient/updater.py`](tuf/ngclient/updater.py) module.
33+
The modern implementation is not considered production ready and does not yet
34+
provide any high-level support for implementing
35+
[repository operations](https://theupdateframework.github.io/specification/latest/#repository-operations),
36+
though the addition of API to support them is planned.
37+
38+
39+
40+
The reference implementation strives to be a readable guide and demonstration
41+
for those working on implementing TUF in their own languages, environments, or
42+
update systems.
1643

1744

1845
About The Update Framework

0 commit comments

Comments
 (0)