uv/crates
John Mumm 880eb286e8
Add new `uv-keyring` crate that vendors the `keyring-rs` crate (#14725)
This PR is a first step toward support for storing credentials in the
system keyring. The `keyring-rs` crate is the best option for system
keyring integration, but the latest version (v4) requires either that
Linux users have `libdbus` installed or that it is built with `libdbus`
vendored in. This is because v4 depends on
[dbus-secret-service](https://github.com/open-source-cooperative/dbus-secret-service),
which was created as an alternative to
[secret-service](https://github.com/open-source-cooperative/secret-service-rs)
so that users are not required to use an async runtime. Since uv does
use an async runtime, this is not a good tradeoff for uv.

This PR:
* Vendors `keyring-rs` crate into a new `uv-keyring` workspace crate
* Moves to the async `secret-service` crate that does not require
clients on Linux to have `libdbus` on their machines. This includes
updating `CredentialsAPI` trait (and implementations) to use async
methods.
* Adds `uv-keyring` tests to `cargo test` jobs. For `cargo test |
ubuntu`, this meant setting up secret service and priming gnome-keyring
as an earlier step.
* Removes iOS code paths
* Patches in @oconnor663 's changes from his [`keyring-rs`
PR](https://github.com/open-source-cooperative/keyring-rs/pull/261)
* Applies many clippy-driven updates
2025-08-15 15:57:56 +02:00
..
uv Move python bin filtering into test that needs it (#15305) 2025-08-15 08:06:52 -05:00
uv-auth Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-bench Move `--config-settings` structs into `uv-distribution-types` (#15278) 2025-08-14 15:07:47 +01:00
uv-build Bump version to 0.8.11 (#15287) 2025-08-14 14:21:10 -05:00
uv-build-backend Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-build-frontend Reject `match-runtime = true` for dynamic packages (#15292) 2025-08-15 10:18:11 +01:00
uv-cache Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-cache-info Follow links when cache-key is a glob (#13438) 2025-07-14 11:35:34 -04:00
uv-cache-key Add `DisplaySafeUrl` newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-cli Move `--config-settings` structs into `uv-distribution-types` (#15278) 2025-08-14 15:07:47 +01:00
uv-client Allow passing custom reqwest client to RegistryClient (#15281) 2025-08-14 12:00:09 -05:00
uv-configuration Move `--config-settings` structs into `uv-distribution-types` (#15278) 2025-08-14 15:07:47 +01:00
uv-console Use consistent workspace inheritance (#15031) 2025-08-02 22:03:51 +02:00
uv-dev Add Python 3.14.0rc2 (#15285) 2025-08-14 13:18:36 -05:00
uv-dirs Use workspace dependencies for crate dev-dependencies (#14903) 2025-07-25 13:57:49 -05:00
uv-dispatch Reject `match-runtime = true` for dynamic packages (#15292) 2025-08-15 10:18:11 +01:00
uv-distribution Force cache indexes to set hash digests and cache info (#15291) 2025-08-14 22:28:56 +00:00
uv-distribution-filename Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-distribution-types Rename `InstalledDist` methods to reflect read operation (#15290) 2025-08-14 22:39:40 +01:00
uv-extract Harden ZIP streaming to reject repeated entries and other malformed ZIP files (#15136) 2025-08-07 15:31:48 +01:00
uv-fs Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-git Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-git-types Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-globfilter additional use of Self, remove * and & where not needed (#15091) 2025-08-05 15:19:56 -05:00
uv-install-wheel Make 'v' prefix cyan in overlap warnings (#15259) 2025-08-13 22:41:28 +01:00
uv-installer Avoid `&String` in installer (#15299) 2025-08-15 11:05:11 +01:00
uv-keyring Add new `uv-keyring` crate that vendors the `keyring-rs` crate (#14725) 2025-08-15 15:57:56 +02:00
uv-macros Use consistent workspace inheritance (#15031) 2025-08-02 22:03:51 +02:00
uv-metadata Harden ZIP streaming to reject repeated entries and other malformed ZIP files (#15136) 2025-08-07 15:31:48 +01:00
uv-normalize Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-once-map Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-options-metadata Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-pep440 Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-pep508 Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-performance-memory-allocator Update Rust crate mimalloc to v0.1.47 (#14207) 2025-06-23 12:07:09 +02:00
uv-platform Add support for installing pyodide Pythons (#14518) 2025-08-13 11:03:25 -05:00
uv-platform-tags additional use of Self, remove * and & where not needed (#15091) 2025-08-05 15:19:56 -05:00
uv-publish Respect `UV_HTTP_RETRIES` in `uv publish` (#15106) 2025-08-06 17:59:17 +02:00
uv-pypi-types Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-python Add Python 3.14.0rc2 (#15285) 2025-08-14 13:18:36 -05:00
uv-redacted Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-requirements Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-requirements-txt additional use of Self, remove * and & where not needed (#15091) 2025-08-05 15:19:56 -05:00
uv-resolver Update Rust toolchain to 1.89 (#15157) 2025-08-08 13:01:52 +00:00
uv-scripts Enable extra build dependencies to 'match runtime' versions (#15036) 2025-08-05 19:00:44 +01:00
uv-settings Move `--config-settings` structs into `uv-distribution-types` (#15278) 2025-08-14 15:07:47 +01:00
uv-shell Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-small-str Update schemars 1.0.0 (#13693) 2025-06-24 21:43:31 +02:00
uv-state Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-static chore(🧹): cleanup env var usage (#15247) 2025-08-12 21:11:28 -05:00
uv-tool replace manual venv removal with remove_virtualenv (#15007) 2025-08-07 15:52:57 -05:00
uv-torch Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-trampoline Update trampoline to ~1.87 nightly (#15052) 2025-08-06 12:45:04 +00:00
uv-trampoline-builder Use workspace dependencies for crate dev-dependencies (#14903) 2025-07-25 13:57:49 -05:00
uv-types Move `--config-settings` structs into `uv-distribution-types` (#15278) 2025-08-14 15:07:47 +01:00
uv-version Bump version to 0.8.11 (#15287) 2025-08-14 14:21:10 -05:00
uv-virtualenv Make the use of `Self` consistent. (#15074) 2025-08-05 20:17:12 +01:00
uv-warnings Better warning chain styling (#14934) 2025-07-28 16:23:39 +00:00
uv-workspace Revert "Fix settings rendering for `extra-build-dependencies`" (#15228) 2025-08-11 19:37:12 -05:00
README.md Link to Dependency specifiers instead of PEP 508 (#8411) 2024-10-21 14:43:38 -04:00

README.md

Crates

uv-bench

Functionality for benchmarking uv.

uv-cache-key

Generic functionality for caching paths, URLs, and other resources across platforms.

uv-distribution-filename

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

uv-distribution-types

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

uv-install-wheel-rs

Install built distributions (wheels) into a virtual environment.

uv-once-map

A waitmap-like concurrent hash map for executing tasks exactly once.

uv-pep440-rs

Utilities for interacting with Python version numbers and specifiers.

uv-pep508-rs

Utilities for parsing and evaluating dependency specifiers, previously known as PEP 508.

uv-platform-tags

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

uv-cli

Command-line interface for the uv package manager.

uv-build-frontend

A PEP 517-compatible build frontend for uv.

uv-cache

Functionality for caching Python packages and associated metadata.

uv-client

Client for interacting with PyPI-compatible HTTP APIs.

uv-dev

Development utilities for uv.

uv-dispatch

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

uv-distribution

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

uv-extract

Utilities for extracting files from archives.

uv-fs

Utilities for interacting with the filesystem.

uv-git

Functionality for interacting with Git repositories.

uv-installer

Functionality for installing Python packages into a virtual environment.

uv-python

Functionality for detecting and leveraging the current Python interpreter.

uv-normalize

Normalize package and extra names as per Python specifications.

uv-requirements

Utilities for reading package requirements from pyproject.toml and requirements.txt files.

uv-resolver

Functionality for resolving Python packages and their dependencies.

uv-shell

Utilities for detecting and manipulating shell environments.

uv-types

Shared traits for uv, to avoid circular dependencies.

uv-pypi-types

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

uv-virtualenv

A venv replacement to create virtual environments in Rust.

uv-warnings

User-facing warnings for uv.

uv-workspace

Workspace abstractions for uv.

uv-requirements-txt

Functionality for parsing requirements.txt files.