2023-10-04 15:33:47 -04:00
|
|
|
[workspace]
|
|
|
|
|
members = ["crates/*"]
|
2024-01-26 14:54:11 +01:00
|
|
|
exclude = [
|
2024-02-23 19:56:34 +01:00
|
|
|
"scripts",
|
|
|
|
|
# Needs nightly
|
2024-03-06 06:18:11 +02:00
|
|
|
"crates/uv-trampoline",
|
2024-01-26 14:54:11 +01:00
|
|
|
]
|
2023-10-04 15:33:47 -04:00
|
|
|
resolver = "2"
|
|
|
|
|
|
|
|
|
|
[workspace.package]
|
2025-05-18 19:38:43 -04:00
|
|
|
edition = "2024"
|
2025-10-30 23:34:59 -04:00
|
|
|
rust-version = "1.89"
|
2024-02-15 11:19:46 -06:00
|
|
|
homepage = "https://pypi.org/project/uv/"
|
|
|
|
|
repository = "https://github.com/astral-sh/uv"
|
|
|
|
|
authors = ["uv"]
|
2023-10-04 15:33:47 -04:00
|
|
|
license = "MIT OR Apache-2.0"
|
2023-10-06 15:49:41 -04:00
|
|
|
|
|
|
|
|
[workspace.dependencies]
|
2026-01-13 16:55:34 -06:00
|
|
|
uv-auth = { version = "0.0.14", path = "crates/uv-auth" }
|
|
|
|
|
uv-bin-install = { version = "0.0.14", path = "crates/uv-bin-install" }
|
|
|
|
|
uv-build-backend = { version = "0.0.14", path = "crates/uv-build-backend" }
|
|
|
|
|
uv-build-frontend = { version = "0.0.14", path = "crates/uv-build-frontend" }
|
|
|
|
|
uv-cache = { version = "0.0.14", path = "crates/uv-cache" }
|
|
|
|
|
uv-cache-info = { version = "0.0.14", path = "crates/uv-cache-info" }
|
|
|
|
|
uv-cache-key = { version = "0.0.14", path = "crates/uv-cache-key" }
|
|
|
|
|
uv-cli = { version = "0.0.14", path = "crates/uv-cli" }
|
|
|
|
|
uv-client = { version = "0.0.14", path = "crates/uv-client" }
|
|
|
|
|
uv-configuration = { version = "0.0.14", path = "crates/uv-configuration" }
|
|
|
|
|
uv-console = { version = "0.0.14", path = "crates/uv-console" }
|
|
|
|
|
uv-dirs = { version = "0.0.14", path = "crates/uv-dirs" }
|
|
|
|
|
uv-dispatch = { version = "0.0.14", path = "crates/uv-dispatch" }
|
|
|
|
|
uv-distribution = { version = "0.0.14", path = "crates/uv-distribution" }
|
|
|
|
|
uv-distribution-filename = { version = "0.0.14", path = "crates/uv-distribution-filename" }
|
|
|
|
|
uv-distribution-types = { version = "0.0.14", path = "crates/uv-distribution-types" }
|
|
|
|
|
uv-extract = { version = "0.0.14", path = "crates/uv-extract" }
|
|
|
|
|
uv-flags = { version = "0.0.14", path = "crates/uv-flags" }
|
|
|
|
|
uv-fs = { version = "0.0.14", path = "crates/uv-fs", features = ["serde", "tokio"] }
|
|
|
|
|
uv-git = { version = "0.0.14", path = "crates/uv-git" }
|
|
|
|
|
uv-git-types = { version = "0.0.14", path = "crates/uv-git-types" }
|
|
|
|
|
uv-globfilter = { version = "0.0.14", path = "crates/uv-globfilter" }
|
|
|
|
|
uv-install-wheel = { version = "0.0.14", path = "crates/uv-install-wheel", default-features = false }
|
|
|
|
|
uv-installer = { version = "0.0.14", path = "crates/uv-installer" }
|
|
|
|
|
uv-keyring = { version = "0.0.14", path = "crates/uv-keyring" }
|
|
|
|
|
uv-logging = { version = "0.0.14", path = "crates/uv-logging" }
|
|
|
|
|
uv-macros = { version = "0.0.14", path = "crates/uv-macros" }
|
|
|
|
|
uv-metadata = { version = "0.0.14", path = "crates/uv-metadata" }
|
|
|
|
|
uv-normalize = { version = "0.0.14", path = "crates/uv-normalize" }
|
|
|
|
|
uv-once-map = { version = "0.0.14", path = "crates/uv-once-map" }
|
|
|
|
|
uv-options-metadata = { version = "0.0.14", path = "crates/uv-options-metadata" }
|
|
|
|
|
uv-performance-memory-allocator = { version = "0.0.14", path = "crates/uv-performance-memory-allocator" }
|
|
|
|
|
uv-pep440 = { version = "0.0.14", path = "crates/uv-pep440", features = ["tracing", "rkyv", "version-ranges"] }
|
|
|
|
|
uv-pep508 = { version = "0.0.14", path = "crates/uv-pep508", features = ["non-pep508-extensions"] }
|
|
|
|
|
uv-platform = { version = "0.0.14", path = "crates/uv-platform" }
|
|
|
|
|
uv-platform-tags = { version = "0.0.14", path = "crates/uv-platform-tags" }
|
|
|
|
|
uv-preview = { version = "0.0.14", path = "crates/uv-preview" }
|
|
|
|
|
uv-publish = { version = "0.0.14", path = "crates/uv-publish" }
|
|
|
|
|
uv-pypi-types = { version = "0.0.14", path = "crates/uv-pypi-types" }
|
|
|
|
|
uv-python = { version = "0.0.14", path = "crates/uv-python" }
|
|
|
|
|
uv-redacted = { version = "0.0.14", path = "crates/uv-redacted" }
|
|
|
|
|
uv-requirements = { version = "0.0.14", path = "crates/uv-requirements" }
|
|
|
|
|
uv-requirements-txt = { version = "0.0.14", path = "crates/uv-requirements-txt" }
|
|
|
|
|
uv-resolver = { version = "0.0.14", path = "crates/uv-resolver" }
|
|
|
|
|
uv-scripts = { version = "0.0.14", path = "crates/uv-scripts" }
|
|
|
|
|
uv-settings = { version = "0.0.14", path = "crates/uv-settings" }
|
|
|
|
|
uv-shell = { version = "0.0.14", path = "crates/uv-shell" }
|
|
|
|
|
uv-small-str = { version = "0.0.14", path = "crates/uv-small-str" }
|
|
|
|
|
uv-state = { version = "0.0.14", path = "crates/uv-state" }
|
|
|
|
|
uv-static = { version = "0.0.14", path = "crates/uv-static" }
|
|
|
|
|
uv-tool = { version = "0.0.14", path = "crates/uv-tool" }
|
|
|
|
|
uv-torch = { version = "0.0.14", path = "crates/uv-torch" }
|
|
|
|
|
uv-trampoline-builder = { version = "0.0.14", path = "crates/uv-trampoline-builder" }
|
|
|
|
|
uv-types = { version = "0.0.14", path = "crates/uv-types" }
|
|
|
|
|
uv-version = { version = "0.9.25", path = "crates/uv-version" }
|
|
|
|
|
uv-virtualenv = { version = "0.0.14", path = "crates/uv-virtualenv" }
|
|
|
|
|
uv-warnings = { version = "0.0.14", path = "crates/uv-warnings" }
|
|
|
|
|
uv-workspace = { version = "0.0.14", path = "crates/uv-workspace" }
|
2024-03-20 21:16:02 +01:00
|
|
|
|
2025-12-09 12:08:26 -05:00
|
|
|
ambient-id = { version = "0.0.7", default-features = false, features = ["astral-reqwest-middleware"] }
|
2024-09-17 06:39:58 -04:00
|
|
|
anstream = { version = "0.6.15" }
|
|
|
|
|
anyhow = { version = "1.0.89" }
|
2025-01-10 14:46:36 -05:00
|
|
|
arcstr = { version = "1.2.0" }
|
2025-07-16 21:39:21 -04:00
|
|
|
arrayvec = { version = "0.7.6" }
|
2025-10-21 10:55:58 -04:00
|
|
|
astral-tokio-tar = { version = "0.5.6" }
|
2024-09-17 06:39:58 -04:00
|
|
|
async-channel = { version = "2.3.1" }
|
2024-11-20 16:11:24 +01:00
|
|
|
async-compression = { version = "0.4.12", features = ["bzip2", "gzip", "xz", "zstd"] }
|
2024-09-17 06:39:58 -04:00
|
|
|
async-trait = { version = "0.1.82" }
|
2025-11-14 18:43:25 +01:00
|
|
|
async_http_range_reader = { version = "0.9.1", package = "astral_async_http_range_reader" }
|
2025-11-14 20:15:54 +01:00
|
|
|
async_zip = { version = "0.0.17", package = "astral_async_zip", features = ["bzip2", "deflate", "lzma", "tokio", "xz", "zstd"] }
|
2024-12-24 08:09:13 -05:00
|
|
|
axoupdater = { version = "0.9.0", default-features = false }
|
2025-01-09 16:01:23 -05:00
|
|
|
backon = { version = "1.3.0" }
|
2024-09-17 06:39:58 -04:00
|
|
|
base64 = { version = "0.22.1" }
|
2024-10-16 10:34:29 -07:00
|
|
|
bitflags = { version = "2.6.0" }
|
2025-04-29 18:39:41 -04:00
|
|
|
blake2 = { version = "0.10.6" }
|
2025-01-03 12:18:43 -05:00
|
|
|
boxcar = { version = "0.2.5" }
|
2024-09-18 13:44:57 -04:00
|
|
|
bytecheck = { version = "0.8.0" }
|
2024-09-17 06:39:58 -04:00
|
|
|
cargo-util = { version = "0.2.14" }
|
2024-11-20 16:11:24 +01:00
|
|
|
clap = { version = "4.5.17", features = ["derive", "env", "string", "wrap_help"] }
|
2024-09-17 06:39:58 -04:00
|
|
|
clap_complete_command = { version = "0.6.1" }
|
|
|
|
|
configparser = { version = "3.1.0" }
|
2025-07-25 12:09:38 -04:00
|
|
|
console = { version = "0.16.0", default-features = false, features = ["std"] }
|
2023-10-06 21:43:55 -04:00
|
|
|
csv = { version = "1.3.0" }
|
2024-09-17 06:39:58 -04:00
|
|
|
ctrlc = { version = "3.4.5" }
|
2025-11-20 17:52:31 +00:00
|
|
|
cyclonedx-bom = { version = "0.8.0" }
|
2024-09-17 06:39:58 -04:00
|
|
|
dashmap = { version = "6.1.0" }
|
|
|
|
|
data-encoding = { version = "2.6.0" }
|
2025-12-11 17:11:01 +00:00
|
|
|
diskus = { version = "0.9.0", default-features = false }
|
2024-11-04 14:26:05 -05:00
|
|
|
dotenvy = { version = "0.15.7" }
|
2024-09-17 06:39:58 -04:00
|
|
|
dunce = { version = "1.0.5" }
|
|
|
|
|
either = { version = "1.13.0" }
|
2024-03-07 12:35:54 -05:00
|
|
|
encoding_rs_io = { version = "0.1.7" }
|
2025-12-01 15:02:35 -05:00
|
|
|
embed-manifest = { version = "1.5.0" }
|
2025-10-29 19:20:31 +01:00
|
|
|
etcetera = { version = "0.11.0" }
|
2025-11-24 16:47:15 -05:00
|
|
|
fastrand = { version = "2.3.0" }
|
2025-03-03 09:29:31 -08:00
|
|
|
flate2 = { version = "1.0.33", default-features = false, features = ["zlib-rs"] }
|
2024-11-20 16:11:24 +01:00
|
|
|
fs-err = { version = "3.0.0", features = ["tokio"] }
|
2024-01-05 17:40:12 +01:00
|
|
|
futures = { version = "0.3.30" }
|
2023-11-02 08:14:55 -07:00
|
|
|
glob = { version = "0.3.1" }
|
2024-11-07 14:29:54 +01:00
|
|
|
globset = { version = "0.4.15" }
|
2024-09-12 15:06:05 -04:00
|
|
|
globwalk = { version = "0.9.1" }
|
2025-06-01 21:57:28 -04:00
|
|
|
goblin = { version = "0.10.0", default-features = false, features = ["std", "elf32", "elf64", "endian_fd"] }
|
2025-08-07 08:53:12 -05:00
|
|
|
h2 = { version = "0.4.7" }
|
2025-09-15 19:33:36 +00:00
|
|
|
hashbrown = { version = "0.16.0" }
|
2023-11-01 06:21:44 -07:00
|
|
|
hex = { version = "0.4.3" }
|
2023-12-24 16:35:45 -05:00
|
|
|
html-escape = { version = "0.2.13" }
|
2024-04-10 11:20:44 -04:00
|
|
|
http = { version = "1.1.0" }
|
2024-09-17 06:39:58 -04:00
|
|
|
indexmap = { version = "2.5.0" }
|
2025-07-14 16:09:06 +02:00
|
|
|
indicatif = { version = "0.18.0" }
|
2024-09-17 06:39:58 -04:00
|
|
|
indoc = { version = "2.0.5" }
|
2025-01-05 21:27:14 -05:00
|
|
|
itertools = { version = "0.14.0" }
|
2025-02-16 21:49:21 -05:00
|
|
|
jiff = { version = "0.2.0", features = ["serde"] }
|
2024-09-17 06:39:58 -04:00
|
|
|
junction = { version = "1.2.0" }
|
2025-02-10 02:40:08 +00:00
|
|
|
mailparse = { version = "0.16.0" }
|
2024-04-10 15:09:03 -04:00
|
|
|
md-5 = { version = "0.10.6" }
|
2024-07-01 08:20:24 -04:00
|
|
|
memchr = { version = "2.7.4" }
|
2024-11-20 16:11:24 +01:00
|
|
|
miette = { version = "7.2.0", features = ["fancy-no-backtrace"] }
|
2024-01-24 00:05:14 -05:00
|
|
|
nanoid = { version = "0.4.0" }
|
2025-06-02 08:05:01 +00:00
|
|
|
nix = { version = "0.30.0", features = ["signal"] }
|
2025-09-02 18:18:09 -04:00
|
|
|
open = { version = "5.3.2" }
|
2024-09-17 06:39:58 -04:00
|
|
|
owo-colors = { version = "4.1.0" }
|
2024-05-23 23:02:42 -04:00
|
|
|
path-slash = { version = "0.2.1" }
|
2024-02-27 21:10:29 -05:00
|
|
|
pathdiff = { version = "0.2.1" }
|
2025-01-31 16:29:46 -05:00
|
|
|
percent-encoding = { version = "2.3.1" }
|
2025-04-27 22:25:47 -04:00
|
|
|
petgraph = { version = "0.8.0" }
|
2024-07-15 15:24:08 -04:00
|
|
|
proc-macro2 = { version = "1.0.86" }
|
2026-01-01 13:36:23 +00:00
|
|
|
procfs = { version = "0.18.0", default-features = false, features = ["flate2"] }
|
2025-11-28 14:51:24 +01:00
|
|
|
pubgrub = { version = "0.3.3" , package = "astral-pubgrub" }
|
2024-09-17 06:39:58 -04:00
|
|
|
quote = { version = "1.0.37" }
|
|
|
|
|
rayon = { version = "1.10.0" }
|
2025-05-28 13:28:28 +02:00
|
|
|
ref-cast = { version = "1.0.24" }
|
2024-09-17 06:39:58 -04:00
|
|
|
reflink-copy = { version = "0.1.19" }
|
|
|
|
|
regex = { version = "1.10.6" }
|
2024-11-14 14:14:58 +01:00
|
|
|
regex-automata = { version = "0.4.8", default-features = false, features = ["dfa-build", "dfa-search", "perf", "std", "syntax"] }
|
2026-01-14 15:47:53 -05:00
|
|
|
reqsign = { version = "0.18.1", features = ["aws", "google", "default-context"], default-features = false }
|
2025-08-11 10:39:40 -05:00
|
|
|
reqwest = { version = "0.12.22", default-features = false, features = ["json", "gzip", "deflate", "zstd", "stream", "system-proxy", "rustls-tls", "rustls-tls-native-roots", "socks", "multipart", "http2", "blocking"] }
|
2025-11-14 18:43:25 +01:00
|
|
|
reqwest-middleware = { version = "0.4.2", package = "astral-reqwest-middleware", features = ["multipart"] }
|
2025-12-18 11:59:15 +01:00
|
|
|
reqwest-retry = { version = "0.8.0", package = "astral-reqwest-retry" }
|
2024-09-18 13:44:57 -04:00
|
|
|
rkyv = { version = "0.8.8", features = ["bytecheck"] }
|
2024-09-17 06:39:58 -04:00
|
|
|
rmp-serde = { version = "1.3.0" }
|
2024-10-21 14:43:07 -04:00
|
|
|
rust-netrc = { version = "0.1.2" }
|
2024-06-24 01:13:05 +00:00
|
|
|
rustc-hash = { version = "2.0.0" }
|
2025-04-28 08:49:51 -04:00
|
|
|
rustix = { version = "1.0.0", default-features = false, features = ["fs", "std"] }
|
2024-01-25 09:27:49 -08:00
|
|
|
same-file = { version = "1.0.6" }
|
2025-06-25 04:43:31 +09:00
|
|
|
schemars = { version = "1.0.0", features = ["url2"] }
|
2023-10-08 14:45:08 -04:00
|
|
|
seahash = { version = "4.1.0" }
|
2025-09-09 09:05:43 +02:00
|
|
|
secret-service = { version = "5.0.0", features = ["rt-tokio-crypto-rust"] }
|
|
|
|
|
security-framework = { version = "3" }
|
2024-11-07 21:57:38 -05:00
|
|
|
self-replace = { version = "1.5.0" }
|
2024-11-20 16:11:24 +01:00
|
|
|
serde = { version = "1.0.210", features = ["derive", "rc"] }
|
2024-09-30 19:40:21 -04:00
|
|
|
serde-untagged = { version = "0.1.6" }
|
2024-09-17 06:39:58 -04:00
|
|
|
serde_json = { version = "1.0.128" }
|
2023-10-06 21:43:55 -04:00
|
|
|
sha2 = { version = "0.10.8" }
|
2024-08-09 13:40:02 -04:00
|
|
|
smallvec = { version = "1.13.2" }
|
2025-12-14 18:25:06 +00:00
|
|
|
spdx = { version = "0.13.0" }
|
2024-09-17 06:39:58 -04:00
|
|
|
syn = { version = "2.0.77" }
|
2024-03-18 10:46:58 +00:00
|
|
|
sys-info = { version = "0.9.1" }
|
2024-11-07 14:29:54 +01:00
|
|
|
tar = { version = "0.4.43" }
|
2024-12-10 20:34:07 -05:00
|
|
|
target-lexicon = { version = "0.13.0" }
|
2024-11-29 18:05:10 +01:00
|
|
|
tempfile = { version = "3.14.0" }
|
2024-02-23 14:01:05 -06:00
|
|
|
textwrap = { version = "0.16.1" }
|
2024-11-15 09:54:16 -06:00
|
|
|
thiserror = { version = "2.0.0" }
|
2025-12-06 08:32:55 -05:00
|
|
|
astral-tl = { version = "0.7.11" }
|
2025-12-04 14:59:04 +01:00
|
|
|
tokio = { version = "1.40.0", features = ["fs", "io-util", "macros", "process", "rt", "signal", "sync", "time"] }
|
2024-09-17 06:39:58 -04:00
|
|
|
tokio-stream = { version = "0.1.16" }
|
2024-11-20 16:11:24 +01:00
|
|
|
tokio-util = { version = "0.7.12", features = ["compat", "io"] }
|
2025-07-21 09:18:16 -04:00
|
|
|
toml = { version = "0.9.2", features = ["fast_hash"] }
|
2026-01-07 21:14:12 +00:00
|
|
|
toml_edit = { version = "0.24.0", features = ["serde"] }
|
2023-11-06 15:14:47 +01:00
|
|
|
tracing = { version = "0.1.40" }
|
2024-08-23 13:50:08 +02:00
|
|
|
tracing-durations-export = { version = "0.3.0", features = ["plot"] }
|
2025-08-27 09:14:00 +02:00
|
|
|
tracing-subscriber = { version = "0.3.18" } # Default feature set for uv_build, uv activates extra features
|
2025-04-19 11:11:41 +02:00
|
|
|
tracing-test = { version = "0.2.5" }
|
2024-07-14 20:39:56 -04:00
|
|
|
tracing-tree = { version = "0.4.0" }
|
2025-04-08 19:33:00 +02:00
|
|
|
unicode-width = { version = "0.2.0" }
|
2023-10-12 13:09:00 -04:00
|
|
|
unscanny = { version = "0.1.0" }
|
2024-11-20 16:11:24 +01:00
|
|
|
url = { version = "2.5.2", features = ["serde"] }
|
2025-09-02 18:18:09 -04:00
|
|
|
uuid = { version = "1.16.0" }
|
2025-11-14 18:56:37 +01:00
|
|
|
version-ranges = { version = "0.1.3", package = "astral-version-ranges" }
|
2024-03-11 19:37:08 -04:00
|
|
|
walkdir = { version = "2.5.0" }
|
2025-06-16 09:37:38 +02:00
|
|
|
which = { version = "8.0.0", features = ["regex"] }
|
2026-01-11 09:10:02 -05:00
|
|
|
windows = { version = "0.59.0", features = ["std", "Win32_Globalization", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Console", "Win32_System_Diagnostics_Debug", "Win32_System_IO", "Win32_System_Ioctl", "Win32_System_Kernel", "Win32_System_LibraryLoader", "Win32_System_Registry", "Win32_UI_WindowsAndMessaging"] }
|
2025-02-26 16:33:31 +01:00
|
|
|
windows-registry = { version = "0.5.0" }
|
2025-06-24 09:04:55 -04:00
|
|
|
wiremock = { version = "0.6.4" }
|
2025-10-16 13:56:07 -07:00
|
|
|
wmi = { version = "0.16.0", default-features = false }
|
2024-07-29 17:46:43 -04:00
|
|
|
xz2 = { version = "0.1.7" }
|
2025-09-09 09:05:43 +02:00
|
|
|
zeroize = { version = "1.8.1" }
|
2025-06-02 14:39:31 +02:00
|
|
|
zip = { version = "2.2.3", default-features = false, features = ["deflate", "zstd", "bzip2", "lzma", "xz"] }
|
2025-09-02 21:38:31 -04:00
|
|
|
zstd = { version = "0.13.3" }
|
2023-10-09 16:48:55 -04:00
|
|
|
|
2025-07-25 13:57:49 -05:00
|
|
|
# dev-dependencies
|
|
|
|
|
assert_cmd = { version = "2.0.16" }
|
|
|
|
|
assert_fs = { version = "1.1.2" }
|
|
|
|
|
byteorder = { version = "1.5.0" }
|
|
|
|
|
filetime = { version = "0.2.25" }
|
|
|
|
|
http-body-util = { version = "0.1.2" }
|
|
|
|
|
hyper = { version = "1.4.1", features = ["server", "http1"] }
|
2025-11-16 12:48:31 -05:00
|
|
|
hyper-util = { version = "0.1.8", features = ["tokio", "server", "http1"] }
|
2025-07-25 13:57:49 -05:00
|
|
|
ignore = { version = "0.4.23" }
|
|
|
|
|
insta = { version = "1.40.0", features = ["json", "filters", "redactions"] }
|
|
|
|
|
predicates = { version = "3.1.2" }
|
2025-11-09 14:12:40 +00:00
|
|
|
rcgen = { version = "0.14.5", features = ["crypto", "pem", "ring"], default-features = false }
|
2025-11-16 12:48:31 -05:00
|
|
|
rustls = { version = "0.23.29", default-features = false }
|
2025-07-25 13:57:49 -05:00
|
|
|
similar = { version = "2.6.0" }
|
|
|
|
|
temp-env = { version = "0.3.6" }
|
|
|
|
|
test-case = { version = "3.3.1" }
|
|
|
|
|
test-log = { version = "0.2.16", features = ["trace"], default-features = false }
|
2025-11-16 12:48:31 -05:00
|
|
|
tokio-rustls = { version = "0.26.2", default-features = false }
|
2025-07-25 13:57:49 -05:00
|
|
|
whoami = { version = "1.6.0" }
|
|
|
|
|
|
2023-11-22 15:10:27 +00:00
|
|
|
[workspace.lints.rust]
|
|
|
|
|
unsafe_code = "warn"
|
|
|
|
|
unreachable_pub = "warn"
|
|
|
|
|
|
|
|
|
|
[workspace.lints.clippy]
|
|
|
|
|
pedantic = { level = "warn", priority = -2 }
|
|
|
|
|
# Allowed pedantic lints
|
|
|
|
|
char_lit_as_u8 = "allow"
|
|
|
|
|
collapsible_else_if = "allow"
|
|
|
|
|
collapsible_if = "allow"
|
|
|
|
|
implicit_hasher = "allow"
|
2024-05-09 22:17:01 +02:00
|
|
|
map_unwrap_or = "allow"
|
2023-11-22 15:10:27 +00:00
|
|
|
match_same_arms = "allow"
|
|
|
|
|
missing_errors_doc = "allow"
|
|
|
|
|
missing_panics_doc = "allow"
|
|
|
|
|
module_name_repetitions = "allow"
|
|
|
|
|
must_use_candidate = "allow"
|
|
|
|
|
similar_names = "allow"
|
2025-06-17 06:18:54 -04:00
|
|
|
struct_excessive_bools = "allow"
|
2024-06-30 15:30:38 -04:00
|
|
|
too_many_arguments = "allow"
|
2024-09-08 11:09:49 -04:00
|
|
|
too_many_lines = "allow"
|
|
|
|
|
used_underscore_binding = "allow"
|
2023-11-22 15:10:27 +00:00
|
|
|
# Disallowed restriction lints
|
|
|
|
|
print_stdout = "warn"
|
|
|
|
|
print_stderr = "warn"
|
|
|
|
|
dbg_macro = "warn"
|
|
|
|
|
empty_drop = "warn"
|
|
|
|
|
empty_structs_with_brackets = "warn"
|
|
|
|
|
exit = "warn"
|
|
|
|
|
get_unwrap = "warn"
|
|
|
|
|
rc_buffer = "warn"
|
|
|
|
|
rc_mutex = "warn"
|
|
|
|
|
rest_pat_in_fully_bound_structs = "warn"
|
2024-11-26 14:57:26 -05:00
|
|
|
if_not_else = "allow"
|
2025-08-05 12:17:12 -07:00
|
|
|
use_self = "warn"
|
2023-11-22 15:10:27 +00:00
|
|
|
|
2025-01-11 22:19:33 -05:00
|
|
|
# Diagnostics are not actionable: Enable once https://github.com/rust-lang/rust-clippy/issues/13774 is resolved.
|
|
|
|
|
large_stack_arrays = "allow"
|
|
|
|
|
|
2024-08-03 13:11:02 +02:00
|
|
|
[profile.release]
|
|
|
|
|
strip = true
|
2024-08-09 09:22:12 -04:00
|
|
|
lto = "fat"
|
2024-08-03 13:11:02 +02:00
|
|
|
|
2024-08-09 09:22:12 -04:00
|
|
|
# This profile is meant to mimic the `release` profile as closely as
|
|
|
|
|
# possible, but using settings that are more beneficial for iterative
|
|
|
|
|
# development. That is, the `release` profile is intended for actually
|
|
|
|
|
# building the release, where as `profiling` is meant for building `uv`
|
|
|
|
|
# for running benchmarks.
|
|
|
|
|
#
|
|
|
|
|
# The main differences here are to avoid stripping debug information
|
|
|
|
|
# and disabling lto. This does result in a mismatch between our release
|
|
|
|
|
# configuration and our benchmarking configuration, which is unfortunate.
|
|
|
|
|
# But compile times with `lto = true` are completely untenable:
|
|
|
|
|
#
|
|
|
|
|
# $ cargo b --profile profiling -p uv
|
|
|
|
|
# Compiling uv-cli v0.0.1 (/home/andrew/astral/uv/crates/uv-cli)
|
|
|
|
|
# Compiling uv v0.2.34 (/home/andrew/astral/uv/crates/uv)
|
|
|
|
|
# Finished `profiling` profile [optimized + debuginfo] target(s) in 3m 47s
|
|
|
|
|
#
|
|
|
|
|
# Using `lto = "thin"` brings a massive improvement, but it's still slow:
|
|
|
|
|
#
|
|
|
|
|
# $ cargo b --profile profiling -p uv
|
|
|
|
|
# Compiling uv v0.2.34 (/home/andrew/astral/uv/crates/uv)
|
|
|
|
|
# Finished `profiling` profile [optimized + debuginfo] target(s) in 53.98s
|
|
|
|
|
#
|
|
|
|
|
# But with `lto = false`:
|
|
|
|
|
#
|
|
|
|
|
# $ cargo b --profile profiling -p uv
|
|
|
|
|
# Compiling uv v0.2.34 (/home/andrew/astral/uv/crates/uv)
|
|
|
|
|
# Finished `profiling` profile [optimized + debuginfo] target(s) in 30.09s
|
|
|
|
|
#
|
|
|
|
|
# We get more reasonable-ish compile times. At least, it's not enough
|
|
|
|
|
# time to get up and get a cup of coffee before it completes.
|
|
|
|
|
#
|
|
|
|
|
# This setup does risk that we are measuring something in benchmarks
|
|
|
|
|
# that we are shipping, but in order to make those two the same, we'd
|
|
|
|
|
# either need to make compile times way worse for development, or take
|
|
|
|
|
# a hit to binary size and a slight hit to runtime performance in our
|
|
|
|
|
# release builds.
|
2023-10-13 11:50:04 +02:00
|
|
|
[profile.profiling]
|
|
|
|
|
inherits = "release"
|
2024-08-03 13:11:02 +02:00
|
|
|
strip = false
|
2024-08-09 09:22:12 -04:00
|
|
|
debug = "full"
|
|
|
|
|
lto = false
|
2024-01-18 15:44:11 -05:00
|
|
|
|
2025-12-11 14:51:37 +01:00
|
|
|
# Profile for fast test execution: Skip debug info generation, and
|
|
|
|
|
# apply basic optimization, which speed up build and running tests.
|
2024-03-25 21:57:26 +01:00
|
|
|
[profile.fast-build]
|
|
|
|
|
inherits = "dev"
|
2025-10-28 13:31:18 +01:00
|
|
|
opt-level = 1
|
2024-03-25 21:57:26 +01:00
|
|
|
debug = 0
|
|
|
|
|
strip = "debuginfo"
|
|
|
|
|
|
2025-12-11 14:51:37 +01:00
|
|
|
# Profile for faster builds: Skip debug info generation, for faster
|
|
|
|
|
# builds of smaller binaries.
|
|
|
|
|
[profile.no-debug]
|
|
|
|
|
inherits = "dev"
|
|
|
|
|
debug = 0
|
|
|
|
|
strip = "debuginfo"
|
|
|
|
|
|
2025-03-06 20:27:20 +01:00
|
|
|
# Profile to build a minimally sized binary for uv-build
|
|
|
|
|
[profile.minimal-size]
|
|
|
|
|
inherits = "release"
|
|
|
|
|
opt-level = "z"
|
|
|
|
|
# This will still show a panic message, we only skip the unwind
|
|
|
|
|
panic = "abort"
|
|
|
|
|
codegen-units = 1
|
|
|
|
|
|
2024-01-18 15:44:11 -05:00
|
|
|
# The profile that 'cargo dist' will build with.
|
|
|
|
|
[profile.dist]
|
|
|
|
|
inherits = "release"
|