[package]
name = "uv-pep508"
version = "0.0.65"
description = "This is an internal component crate of uv"
include = ["/src", "Changelog.md", "License-Apache", "License-BSD", "Readme.md", "pyproject.toml"]
license = "Apache-2.0 OR BSD-2-Clause"

edition = { workspace = true }
rust-version = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
authors = { workspace = true }
readme = "README.md"

[lints]
workspace = true

[dependencies]
uv-cache-key = { workspace = true }
uv-fs = { workspace = true }
uv-normalize = { workspace = true }
uv-pep440 = { workspace = true }
uv-redacted = { workspace = true }

arcstr = { workspace = true}
boxcar = { workspace = true }
indexmap = { workspace = true }
itertools = { workspace = true }
regex = { workspace = true }
rkyv = { workspace = true, optional = true }
rustc-hash = { workspace = true }
schemars = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive", "rc"] }
smallvec = { workspace = true }
temp-env = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true, optional = true }
unicode-width = { workspace = true }
url = { workspace = true, features = ["serde"] }
version-ranges = { workspace = true }

[dev-dependencies]
insta = { workspace = true }
serde_json = { workspace = true }
tracing-test = { workspace = true }

[features]
tracing = ["dep:tracing", "uv-pep440/tracing"]
schemars = ["dep:schemars"]
# PEP 508 allows only URLs such as `foo @ https://example.org/foo` or `foo @ file:///home/ferris/foo`, and
# arguably does not allow relative paths in file URLs (`foo @ file://./foo`,
# `foo @ file:foo-3.0.0-py3-none-any.whl`, `foo @ file://foo-3.0.0-py3-none-any.whl`), as they are not part of the
# relevant RFCs, even though widely supported. Pip accepts relative file URLs and paths instead of urls
# (`foo @ ./foo-3.0.0-py3-none-any.whl`). The `non-pep508-features` controls whether these non-spec features will
# be supported.
non-pep508-extensions = []
default = []
rkyv = ["dep:rkyv"]
# Match the API of the published crate, for compatibility.
serde = []
