93f5609476
## Summary Closes #1977 This allows us to send uv's version in the `uv-client` User Agent header. Here's how request headers look like to a server now: ``` ... Accept: application/vnd.pypi.simple.v1+json, application/vnd.pypi.simple.v1+html;q=0.2, text/html;q=0.01 User-Agent: uv/0.1.13 ... ``` ~~I went for a mix of Option 1 and 2 from #1977.~~ Open to alternative naming as well, not tied too strongly here to the names picked. ~~Another possibility for this new crate is that we can use it to consolidate metadata that exists across crates to ultimately be able to create linehaul information described in #1958, but I haven't looked into what those changes might look like.~~ <!-- What's the purpose of the change? What does it do, and why? --> ## Test Plan <!-- How was it tested? --> Added initial tests in the new crate to exercise its public API and added a new test to uv-client to validate the headers using a 1-time disposable server.
55 lines
1.9 KiB
TOML
55 lines
1.9 KiB
TOML
[package]
|
|
name = "uv-client"
|
|
version = "0.0.1"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
cache-key = { path = "../cache-key" }
|
|
distribution-filename = { path = "../distribution-filename", features = ["rkyv", "serde"] }
|
|
distribution-types = { path = "../distribution-types" }
|
|
install-wheel-rs = { path = "../install-wheel-rs" }
|
|
pep440_rs = { path = "../pep440-rs" }
|
|
pep508_rs = { path = "../pep508-rs" }
|
|
platform-tags = { path = "../platform-tags" }
|
|
uv-auth = { path = "../uv-auth" }
|
|
uv-cache = { path = "../uv-cache" }
|
|
uv-fs = { path = "../uv-fs", features = ["tokio"] }
|
|
uv-normalize = { path = "../uv-normalize" }
|
|
uv-version = { path = "../uv-version" }
|
|
uv-warnings = { path = "../uv-warnings" }
|
|
pypi-types = { path = "../pypi-types" }
|
|
|
|
anyhow = { workspace = true }
|
|
async-trait = { workspace = true }
|
|
async_http_range_reader = { workspace = true }
|
|
async_zip = { workspace = true, features = ["tokio"] }
|
|
chrono = { workspace = true }
|
|
fs-err = { workspace = true, features = ["tokio"] }
|
|
futures = { workspace = true }
|
|
html-escape = { workspace = true }
|
|
http = { workspace = true }
|
|
reqwest = { workspace = true }
|
|
reqwest-middleware = { workspace = true }
|
|
reqwest-retry = { workspace = true }
|
|
rkyv = { workspace = true, features = ["strict", "validation"] }
|
|
rmp-serde = { workspace = true }
|
|
rustc-hash = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
task-local-extensions = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tl = { workspace = true }
|
|
tokio = { workspace = true, features = ["fs"] }
|
|
tokio-util = { workspace = true }
|
|
tracing = { workspace = true }
|
|
url = { workspace = true }
|
|
urlencoding = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
anyhow = { workspace = true }
|
|
hyper = { version = "0.14.28", features = ["server", "http1"] }
|
|
insta = { version = "1.35.1" }
|
|
tokio = { workspace = true, features = ["fs", "macros"] }
|