Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions docs/reference/policies/platforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,44 @@ vary in practice.

Tier 3 platforms may not be built or tested, but uv will accept patches to fix bugs.

## Linux versions

On Linux, compatibility is determined by libc version.

uv publishes both glibc-based and musl-based distributions.

For glibc-based Linux distributions, uv publishes
[manylinux-compatible](https://peps.python.org/pep-0600/) wheels and corresponding binaries. These
artifacts depend on glibc being available on the host system. In a manylinux wheel tag, the version
encodes the minimum supported glibc version for that wheel; for example, `manylinux_2_17_x86_64`
requires glibc 2.17+.

uv's official glibc-based wheels and binaries are published for the following targets:

- `x86_64-unknown-linux-gnu` (`manylinux_2_17_x86_64`)
- `aarch64-unknown-linux-gnu` (`manylinux_2_28_aarch64`)
- `armv7-unknown-linux-gnueabihf` (`manylinux_2_17_armv7l`)
- `i686-unknown-linux-gnu` (`manylinux_2_17_i686`)
- `powerpc64le-unknown-linux-gnu` (`manylinux_2_17_ppc64le`)
- `riscv64gc-unknown-linux-gnu` (`manylinux_2_31_riscv64`)
- `s390x-unknown-linux-gnu` (`manylinux_2_17_s390x`)

uv also publishes musl-based wheels and fully statically linked binaries for the following targets:

- `x86_64-unknown-linux-musl` (`musllinux_1_1_x86_64`)
- `aarch64-unknown-linux-musl` (`musllinux_1_1_aarch64`)
- `armv7-unknown-linux-musleabihf` (`musllinux_1_1_armv7l`)
- `i686-unknown-linux-musl` (`musllinux_1_1_i686`)
- `riscv64gc-unknown-linux-musl` (`musllinux_1_1_riscv64`)
- `arm-unknown-linux-musleabihf` (`linux_armv6l`)

The wheels are published with [musllinux-compatible](https://peps.python.org/pep-0656/) tags.
However, the embedded `uv` binaries are fully statically linked and do not require musl libc on the
host system.

The official [Docker images](../../guides/integration/docker.md) include these fully statically
linked musl uv binaries for amd64 and arm64.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huh, TIL: I would have assumed that some of our Docker images (the ones that use glibc, like Debian) would use glibc-linked uv, rather than musl. But this makes it sound like we use musl-linked builds unconditionally for Docker images?

(I don't think that's wrong per se, just something I didn't realize!)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We just build one musl version of uv and copy it into all our derived images, yeah

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(well, one aarch64 and one x86-64)


## Windows versions

The minimum supported Windows versions are Windows 10 and Windows Server 2016, following
Expand Down
Loading