graph LR
Metadata_Fetcher_Subsystem_["Metadata Fetcher (Subsystem)"]
fetch["fetch"]
_fetch["_fetch"]
download_file["download_file"]
download_bytes["download_bytes"]
download_bytes -- "delegates to" --> download_file
download_file -- "calls" --> fetch
fetch -- "invokes" --> _fetch
The Metadata Fetcher subsystem is a critical part of the tuf client, responsible for securely and reliably retrieving metadata and target files from a repository. It embodies a layered approach to network communication and file handling, aligning with the project's "Layered Architecture" and "Client-Server" patterns.
The overarching component responsible for securely and reliably retrieving data from the repository. It acts as the logical container for all fetching-related operations.
Related Classes/Methods:
Serves as the primary entry point for initiating core fetching operations. It abstracts underlying network communication details, providing a standardized interface for higher-level download logic. This component is key to the "Layered Architecture" by allowing different network backends to be integrated without impacting the overall system.
Related Classes/Methods:
Handles the low-level network communication, directly interacting with HTTP libraries to perform the actual data retrieval. It encapsulates network-specific logic, isolating network interactions and potential vulnerabilities.
Related Classes/Methods:
Manages the process of downloading an entire file, including handling file system interactions (e.g., writing to a temporary location or specified path). It orchestrates the file download, ensuring data is correctly handled and stored before cryptographic verification.
Related Classes/Methods:
Provides the highest-level interface for consumers to download file content as raw bytes. It abstracts the underlying fetching mechanism, offering a direct interface for applications needing raw file data without immediate file system persistence.
Related Classes/Methods: