uv/crates
konsti 473d7c75a4
Some checks failed
CI / Determine changes (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / cargo shear (push) Has been cancelled
CI / typos (push) Has been cancelled
CI / mkdocs (push) Has been cancelled
CI / cargo clippy | ubuntu (push) Has been cancelled
CI / cargo clippy | windows (push) Has been cancelled
CI / cargo dev generate-all (push) Has been cancelled
CI / check windows trampoline | i686 (push) Has been cancelled
CI / cargo test | ubuntu (push) Has been cancelled
CI / cargo test | macos (push) Has been cancelled
CI / cargo test | windows (push) Has been cancelled
CI / check windows trampoline | aarch64 (push) Has been cancelled
CI / check system | alpine (push) Has been cancelled
CI / check windows trampoline | x86_64 (push) Has been cancelled
CI / test windows trampoline | i686 (push) Has been cancelled
CI / test windows trampoline | x86_64 (push) Has been cancelled
CI / check system | python on macos aarch64 (push) Has been cancelled
CI / build binary | linux libc (push) Has been cancelled
CI / build binary | linux musl (push) Has been cancelled
CI / build binary | macos aarch64 (push) Has been cancelled
CI / build binary | macos x86_64 (push) Has been cancelled
CI / build binary | windows x86_64 (push) Has been cancelled
CI / build binary | windows aarch64 (push) Has been cancelled
CI / cargo build (msrv) (push) Has been cancelled
CI / build binary | freebsd (push) Has been cancelled
CI / ecosystem test | pydantic/pydantic-core (push) Has been cancelled
CI / ecosystem test | prefecthq/prefect (push) Has been cancelled
CI / ecosystem test | pallets/flask (push) Has been cancelled
CI / smoke test | linux (push) Has been cancelled
CI / smoke test | macos (push) Has been cancelled
CI / smoke test | windows x86_64 (push) Has been cancelled
CI / smoke test | windows aarch64 (push) Has been cancelled
CI / integration test | conda on ubuntu (push) Has been cancelled
CI / integration test | deadsnakes python3.9 on ubuntu (push) Has been cancelled
CI / integration test | free-threaded on linux (push) Has been cancelled
CI / integration test | free-threaded on windows (push) Has been cancelled
CI / integration test | pypy on ubuntu (push) Has been cancelled
CI / integration test | pypy on windows (push) Has been cancelled
CI / integration test | graalpy on ubuntu (push) Has been cancelled
CI / integration test | graalpy on windows (push) Has been cancelled
CI / integration test | github actions (push) Has been cancelled
CI / integration test | free-threaded python on github actions (push) Has been cancelled
CI / integration test | determine publish changes (push) Has been cancelled
CI / integration test | uv publish (push) Has been cancelled
CI / integration test | uv_build (push) Has been cancelled
CI / check system | homebrew python on macos aarch64 (push) Has been cancelled
CI / check cache | ubuntu (push) Has been cancelled
CI / check cache | macos aarch64 (push) Has been cancelled
CI / check system | python on debian (push) Has been cancelled
CI / check system | python on fedora (push) Has been cancelled
CI / check system | python on ubuntu (push) Has been cancelled
CI / check system | python3.12 via chocolatey (push) Has been cancelled
CI / check system | python on opensuse (push) Has been cancelled
CI / check system | python on rocky linux 8 (push) Has been cancelled
CI / check system | python on rocky linux 9 (push) Has been cancelled
CI / check system | pypy on ubuntu (push) Has been cancelled
CI / check system | pyston (push) Has been cancelled
CI / check system | python on macos x86-64 (push) Has been cancelled
CI / check system | python3.10 on windows x86-64 (push) Has been cancelled
CI / check system | python3.10 on windows x86 (push) Has been cancelled
CI / check system | python3.13 on windows x86-64 (push) Has been cancelled
CI / check system | x86-64 python3.13 on windows aarch64 (push) Has been cancelled
CI / check system | windows registry (push) Has been cancelled
CI / check system | python3.9 via pyenv (push) Has been cancelled
CI / check system | python3.13 (push) Has been cancelled
CI / check system | conda3.11 on macos aarch64 (push) Has been cancelled
CI / check system | conda3.8 on macos aarch64 (push) Has been cancelled
CI / check system | conda3.11 on linux x86-64 (push) Has been cancelled
CI / check system | conda3.8 on linux x86-64 (push) Has been cancelled
CI / check system | conda3.11 on windows x86-64 (push) Has been cancelled
CI / check system | conda3.8 on windows x86-64 (push) Has been cancelled
CI / check system | amazonlinux (push) Has been cancelled
CI / check system | embedded python3.10 on windows x86-64 (push) Has been cancelled
CI / benchmarks (push) Has been cancelled
Check dist name to handle bogus redirect (#12917)
When an index performs a bogus redirect or otherwise returns a different
distribution name than expected, uv currently hangs.

In the example case, requesting the simple index page for any package
returns the page for anyio. This mean querying the sniffio version map
returns only anyio entries, and the version maps resolves to an anyio
version. When the resolver makes a query for sniffio and waits for it to
resolve, the main thread finds an anyio and resolves only that in the
wait map, causing the hang.

We fix this by checking the name of the returned distribution against
the name of the requested distribution. For good measure, we add the
same check in `Request::Dist` and `Request::Installed`. For performance
and complexity reasons, we don't perform this check in the version map
itself, but only after a candidate distribution has been selected.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-04-22 15:36:27 +00:00
..
uv Check dist name to handle bogus redirect (#12917) 2025-04-22 15:36:27 +00:00
uv-auth Obfuscate username in tracing URL (#12969) 2025-04-19 11:11:41 +02:00
uv-bench Omit wheels from lockfile based on --exclude-newer (#12299) 2025-03-22 12:27:11 -04:00
uv-build Fix several occurrences of the phrase “This options” (#13053) 2025-04-22 09:20:00 -04:00
uv-build-backend Build backend: Add reference docs and schema (#12803) 2025-04-21 12:27:49 +02:00
uv-build-frontend Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-cache Use Box<Path> in lieu of PathBuf for immutable structs (#12346) 2025-03-25 21:56:06 +00:00
uv-cache-info Avoid allocations for default cache keys (#12063) 2025-03-17 19:59:32 -04:00
uv-cache-key Use hash instead of full wheel name in wheels bucket (#11738) 2025-02-26 22:41:57 +00:00
uv-cli Fix several occurrences of the phrase “This options” (#13053) 2025-04-22 09:20:00 -04:00
uv-client Revert "Properly handle authentication for 302 redirect URLs" (#13041) 2025-04-22 03:40:42 +00:00
uv-configuration Add uv export support for PEP 751 (#12955) 2025-04-21 21:21:17 +00:00
uv-console Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-dev display aliases for long and short args in the cli reference (#12824) 2025-04-10 16:36:22 -05:00
uv-dirs Add support for global uv python pin (#12115) 2025-03-13 13:48:37 +01:00
uv-dispatch Move lowered requirement source type out of uv-pypi-types (#12356) 2025-03-20 21:16:12 -04:00
uv-distribution Revert "Properly handle authentication for 302 redirect URLs" (#13041) 2025-04-22 03:40:42 +00:00
uv-distribution-filename Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-distribution-types Add pylock.toml to uv pip install and uv pip sync (#12992) 2025-04-21 22:10:30 +00:00
uv-extract only warn if CRC appears to be missing (#12722) 2025-04-07 12:49:05 -05:00
uv-fs Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-git Revert "Properly handle authentication for 302 redirect URLs" (#13041) 2025-04-22 03:40:42 +00:00
uv-git-types Avoid querying GitHub on repeated install invocations (#12767) 2025-04-08 22:00:40 -04:00
uv-globfilter Build backend: Add reference docs and schema (#12803) 2025-04-21 12:27:49 +02:00
uv-install-wheel Remove unused thiserror variants (#11713) 2025-02-22 12:12:22 -10:00
uv-installer Add subdirectory to Direct URL for local directories (#12971) 2025-04-18 11:57:58 -04:00
uv-macros Build backend: Add reference docs and schema (#12803) 2025-04-21 12:27:49 +02:00
uv-metadata only warn if CRC appears to be missing (#12722) 2025-04-07 12:49:05 -05:00
uv-normalize add default-groups = "all" sugar to pyproject.toml (#12289) 2025-03-18 13:42:06 -05:00
uv-once-map Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-options-metadata Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-pep440 Address #12836 review comment (#12873) 2025-04-14 08:10:34 +00:00
uv-pep508 Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-performance-memory-allocator Update Rust crate mimalloc to v0.1.46 (#12863) 2025-04-14 10:10:12 +02:00
uv-platform-tags Fix GraalPy abi tag parsing and discovery (#12154) 2025-03-13 23:55:07 +00:00
uv-publish Revert "Properly handle authentication for 302 redirect URLs" (#13041) 2025-04-22 03:40:42 +00:00
uv-pypi-types Add uv export support for PEP 751 (#12955) 2025-04-21 21:21:17 +00:00
uv-python Prefer stable releases over pre-releases in uv python install (#12194) 2025-04-21 21:16:07 +00:00
uv-requirements Add PEP 751 support to uv pip compile (#13019) 2025-04-21 22:48:54 +00:00
uv-requirements-txt Move lowered requirement source type out of uv-pypi-types (#12356) 2025-03-20 21:16:12 -04:00
uv-resolver Check dist name to handle bogus redirect (#12917) 2025-04-22 15:36:27 +00:00
uv-scripts Avoid writing empty requires-python to script blocks (#12517) 2025-03-28 10:26:51 -04:00
uv-settings Add PEP 751 support to uv pip compile (#13019) 2025-04-21 22:48:54 +00:00
uv-shell Add support for Windows legacy scripts via uv tool run (#12079) 2025-03-11 09:02:17 -05:00
uv-small-str Edition 2024 prep: Escape r#gen and remove redundant ref (#11922) 2025-03-03 11:13:56 +00:00
uv-state
uv-static Set 4MB stack size for all threads, introduce UV_STACK_SIZE (#12839) 2025-04-16 09:27:46 +02:00
uv-tool Support build constraints in uv tool and PEP723 scripts. (#12842) 2025-04-14 09:26:57 -04:00
uv-torch Check all compatible torch indexes when --torch-backend is enabled (#12385) 2025-03-22 11:53:23 -04:00
uv-trampoline Upgrade Rust toolchain to 1.85 (#11720) 2025-02-23 16:52:34 +01:00
uv-trampoline-builder Upgrade zip crate to v2 (#12196) 2025-03-16 23:58:11 +00:00
uv-types Use a boxed slice for extras and groups (#12391) 2025-03-22 11:53:36 -04:00
uv-version Bump verison to 0.6.16 (#13042) 2025-04-22 03:53:08 +00:00
uv-virtualenv Unset SCRIPT_PATH in relocatable activation script (#12672) 2025-04-07 13:11:47 -05:00
uv-warnings
uv-workspace Build backend: Add reference docs and schema (#12803) 2025-04-21 12:27:49 +02: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.