uv/crates
konsti 5435d44756
Introduce Cache, CacheBucket and CacheEntry (#507)
This is mostly a mechanical refactor that moves 80% of our code to the
same cache abstraction.

It introduces cache `Cache`, which abstracts away the path of the cache
and the temp dir drop and is passed throughout the codebase. To get a
specific cache bucket, you need to requests your `CacheBucket` from
`Cache`. `CacheBucket` is the centralizes the names of all cache
buckets, moving them away from the string constants spread throughout
the crates.

Specifically for working with the `CachedClient`, there is a
`CacheEntry`. I'm not sure yet if that is a strict improvement over
`cache_dir: PathBuf, cache_file: String`, i may have to rotate that
later.

The interpreter cache moved into `interpreter-v0`.

We can use the `CacheBucket` page to document the cache structure in
each bucket:


![image](b023fdfb-e34d-4c2d-8663-b5f73937a539)
2023-11-28 17:11:14 +00:00
..
bench Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
distribution-filename Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
distribution-types Check compatibility for cached unzipped wheels (#501) 2023-11-27 16:03:58 -08:00
gourgeist Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
install-wheel-rs Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
pep440-rs Consistent Cargo.toml syntax (#483) 2023-11-22 08:34:08 +00:00
pep508-rs Consistent Cargo.toml syntax (#483) 2023-11-22 08:34:08 +00:00
platform-host Error when ldd is not in path (#506) 2023-11-28 05:55:04 +00:00
platform-tags Add Tags::from_interpreter (#498) 2023-11-24 11:36:01 +00:00
puffin-build puffin_interpreter cleanup ahead of #235 (#492) 2023-11-23 08:57:33 +00:00
puffin-cache Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-cli Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-client Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-dev Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-dispatch Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-distribution Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-git Perform a single Git fetch when building source distributions (#499) 2023-11-25 23:29:41 +00:00
puffin-installer Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-interpreter Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-macros Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
puffin-normalize Split puffin-package into requirements.txt parser and pypi-types (#341) 2023-11-06 18:19:49 +00:00
puffin-resolver Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-traits Introduce Cache, CacheBucket and CacheEntry (#507) 2023-11-28 17:11:14 +00:00
puffin-workspace Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
pypi-types Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
requirements-txt Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
README.md Unify distribution operations into a single crate (#460) 2023-11-20 11:22:52 +00:00

Crates

bench

Functionality for benchmarking Puffin.

distribution-filename

Parse built distribution (wheel) and source distribution (sdist) filenames to extract structured metadata.

distribution-types

Abstractions for representing built distributions (wheels) and source distributions (sdists), and the sources from which they can be downloaded.

gourgeist

A venv replacement to create virtual environments in Rust.

install-wheel-rs

Install built distributions (wheels) into a virtual environment.]

pep440-rs

Utilities for interacting with Python version numbers and specifiers.

pep508-rs

Utilities for interacting with PEP 508 dependency specifiers.

platform-host

Functionality for detecting the current platform (operating system, architecture, etc.).

platform-tags

Functionality for parsing and inferring Python platform tags as per PEP 425.

puffin-build

A PEP 517-compatible build frontend for Puffin.

puffin-cache

Functionality for caching Python packages and associated metadata.

puffin-cli

Command-line interface for the Puffin package manager.

puffin-client

Client for interacting with PyPI-compatible HTTP APIs.

puffin-dev

Development utilities for Puffin.

puffin-dispatch

A centralized struct for resolving and building source distributions in isolated environments. Implements the traits defined in puffin-traits.

puffin-distribution

Client for interacting with built distributions (wheels) and source distributions (sdists). Capable of fetching metadata, distribution contents, etc.

puffin-git

Functionality for interacting with Git repositories.

puffin-installer

Functionality for installing Python packages into a virtual environment.

puffin-interpreter

Functionality for detecting and leveraging the current Python interpreter.

puffin-macros

Reusable procedural macros for Puffin.

puffin-normalize

Normalize package and extra names as per Python specifications.

puffin-package

Types and functionality for working with Python packages, e.g., parsing wheel files.

puffin-resolver

Functionality for resolving Python packages and their dependencies.

puffin-traits

Shared traits for Puffin, to avoid circular dependencies.

pypi-types

General-purpose type definitions for types used in PyPI-compatible APIs.

requirements-txt

Functionality for parsing requirements.txt files.