diff --git a/Cargo.lock b/Cargo.lock index 6f26a44f..1fdd6e4a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -61,6 +61,26 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "ambient-id" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36b48a3b1ad866e5034859be45edd1ebba2f097289c8a34b61623c76f10480f3" +dependencies = [ + "astral-reqwest-middleware", + "reqwest", + "secrecy", + "serde", + "serde_json", + "thiserror 2.0.12", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -132,18 +152,197 @@ version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "arcstr" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03918c3dbd7701a85c6b9887732e2921175f26c350b4563841d0958c21d57e6d" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "astral-pubgrub" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6cb15b4f5096a3a1b41fdc2736a1c33d87c78f34d3c1ec2b669e766edadd559" +dependencies = [ + "astral-version-ranges", + "indexmap 2.12.1", + "log", + "priority-queue", + "rustc-hash", + "thiserror 2.0.12", +] + +[[package]] +name = "astral-reqwest-middleware" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "638d02e24aeb92f9537897cd1ff82e2bc98fd9ac9575a503e27bb07cdf64d4d7" +dependencies = [ + "anyhow", + "async-trait", + "http", + "reqwest", + "serde", + "thiserror 2.0.12", + "tower-service", +] + +[[package]] +name = "astral-reqwest-retry" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7549bd00f62f73f2e7e76f3f77ccdabb31873f4f02f758ed88ad739d522867" +dependencies = [ + "anyhow", + "astral-reqwest-middleware", + "async-trait", + "futures", + "getrandom 0.2.16", + "http", + "hyper", + "reqwest", + "retry-policies", + "thiserror 2.0.12", + "tokio", + "tracing", + "wasmtimer", +] + +[[package]] +name = "astral-tl" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dfa40da988ff8327db15678418b2394b0546514b7a5c9fac75e1eb3fa40550" +dependencies = [ + "memchr", +] + +[[package]] +name = "astral-tokio-tar" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec179a06c1769b1e42e1e2cbe74c7dcdb3d6383c838454d063eaac5bbb7ebbe5" +dependencies = [ + "filetime", + "futures-core", + "libc", + "portable-atomic", + "rustc-hash", + "tokio", + "tokio-stream", + "xattr", +] + +[[package]] +name = "astral-version-ranges" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31979bc305610246d78ac01d63467a12d8454c6e3b8b22b5811d343a1198dfbb" +dependencies = [ + "smallvec", +] + +[[package]] +name = "astral_async_http_range_reader" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ddaca0fbbf0d91103cca7c7611790c65f6eff1d456f7fe6bf565d436dc9b8f3" +dependencies = [ + "astral-reqwest-middleware", + "bisection", + "futures", + "http-content-range", + "itertools 0.13.0", + "memmap2", + "reqwest", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", +] + +[[package]] +name = "astral_async_zip" +version = "0.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab72a761e6085828cc8f0e05ed332b2554701368c5dc54de551bfaec466518ba" +dependencies = [ + "async-compression", + "crc32fast", + "futures-lite", + "pin-project", + "thiserror 1.0.69", + "tokio", + "tokio-util", +] + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + [[package]] name = "async-compression" -version = "0.4.27" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" +checksum = "06575e6a9673580f52661c92107baabffbf41e2141373441cbcdc47cb733003c" dependencies = [ + "bzip2", "flate2", "futures-core", "futures-io", "memchr", "pin-project-lite", "tokio", + "xz2", + "zstd", + "zstd-safe", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", ] [[package]] @@ -169,20 +368,22 @@ dependencies = [ ] [[package]] -name = "async_zip" -version = "0.0.16" +name = "async-trait" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527207465fb6dcafbf661b0d4a51d0d2306c9d0c2975423079a6caa807930daf" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ - "async-compression", - "crc32fast", - "futures-lite", - "pin-project", - "thiserror 1.0.69", - "tokio", - "tokio-util", + "proc-macro2", + "quote", + "syn 2.0.104", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.5.0" @@ -243,6 +444,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "backon" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef" +dependencies = [ + "fastrand", + "gloo-timers", + "tokio", +] + [[package]] name = "backtrace" version = "0.3.75" @@ -258,6 +470,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64" version = "0.22.1" @@ -270,6 +488,12 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +[[package]] +name = "bisection" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021e079a1bab0ecce6cf4b4b74c0c37afa4a697136eb3b127875c84a8f04a8c3" + [[package]] name = "bitflags" version = "1.3.2" @@ -282,6 +506,15 @@ version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -291,6 +524,21 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "boxcar" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f64beae40a84da1b4b26ff2761a5b895c12adc41dc25aaee1c4f2bbfe97a6e" + [[package]] name = "bstr" version = "1.12.0" @@ -298,6 +546,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", + "regex-automata 0.4.9", "serde", ] @@ -307,6 +556,29 @@ version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +[[package]] +name = "bytecheck" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "rancor", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "bytecount" version = "0.6.9" @@ -325,12 +597,65 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +[[package]] +name = "bzip2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" +dependencies = [ + "bzip2-sys", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.13+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "cargo-util" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f97c9ef0f8af69bfcecfe4c17a414d7bb978fe794bc1a38952e27b5c5d87492d" +dependencies = [ + "anyhow", + "core-foundation 0.10.1", + "filetime", + "hex", + "ignore", + "jobserver", + "libc", + "miow", + "same-file", + "sha2", + "shell-escape", + "tempfile", + "tracing", + "walkdir", + "windows-sys 0.60.2", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + [[package]] name = "cc" version = "1.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" dependencies = [ + "jobserver", + "libc", "shlex", ] @@ -352,6 +677,16 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "charset" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f927b07c74ba84c7e5fe4db2baeb3e996ab2688992e39ac68ce3220a677c7e" +dependencies = [ + "base64 0.22.1", + "encoding_rs", +] + [[package]] name = "chrono" version = "0.4.41" @@ -364,7 +699,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -401,22 +736,52 @@ dependencies = [ ] [[package]] -name = "clap_derive" -version = "4.5.41" +name = "clap_complete" +version = "4.5.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +checksum = "39615915e2ece2550c0149addac32fb5bd312c657f43845bb9088cb9c8a7c992" dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.104", + "clap", ] [[package]] -name = "clap_lex" -version = "0.7.5" +name = "clap_complete_command" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "da8e198c052315686d36371e8a3c5778b7852fc75cc313e4e11eeb7a644a1b62" +dependencies = [ + "clap", + "clap_complete", + "clap_complete_nushell", +] + +[[package]] +name = "clap_complete_nushell" +version = "4.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685bc86fd34b7467e0532a4f8435ab107960d69a243785ef0275e571b35b641a" +dependencies = [ + "clap", + "clap_complete", +] + +[[package]] +name = "clap_derive" +version = "4.5.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "clap_lex" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "cli-table" @@ -478,6 +843,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "config" version = "0.3.37" @@ -491,12 +865,18 @@ dependencies = [ "snafu", "testutils", "tokio", - "toml", + "toml 0.8.23", "tower-api", "tower-telemetry", "url", ] +[[package]] +name = "configparser" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57e3272f0190c3f1584272d613719ba5fc7df7f4942fe542e63d949cf3a649b" + [[package]] name = "console" version = "0.15.11" @@ -510,12 +890,55 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "console" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b430743a6eb14e9764d4260d4c0d8123087d504eeb9c48f2b2a5e810dd369df4" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width 0.2.1", + "windows-sys 0.61.2", +] + [[package]] name = "const-oid" version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.16", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation" version = "0.10.1" @@ -541,6 +964,21 @@ dependencies = [ "libc", ] +[[package]] +name = "crc" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + [[package]] name = "crc32fast" version = "1.5.0" @@ -584,12 +1022,18 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + [[package]] name = "crypto" version = "0.3.37" dependencies = [ "aes-gcm", - "base64", + "base64 0.22.1", "pem", "rand 0.8.5", "rsa", @@ -657,7 +1101,7 @@ checksum = "6cd12917efc3a8b069a4975ef3cb2f2d835d42d04b3814d90838488f9dd9bf69" dependencies = [ "anyhow", "clap", - "console", + "console 0.15.11", "cucumber-codegen", "cucumber-expressions", "derive_more", @@ -668,7 +1112,7 @@ dependencies = [ "globwalk", "humantime", "inventory", - "itertools", + "itertools 0.13.0", "lazy-regex", "linked-hash-map", "once_cell", @@ -686,7 +1130,7 @@ checksum = "9e19cd9e8e7cfd79fbf844eb6a7334117973c01f6bad35571262b00891e60f1c" dependencies = [ "cucumber-expressions", "inflections", - "itertools", + "itertools 0.13.0", "proc-macro2", "quote", "regex", @@ -708,6 +1152,41 @@ dependencies = [ "regex-syntax 0.7.5", ] +[[package]] +name = "cyclonedx-bom" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2ec98a191e17f63b92b132f6852462de9eaee03ca8dbf2df401b9fd809bcac" +dependencies = [ + "base64 0.21.7", + "cyclonedx-bom-macros", + "fluent-uri", + "indexmap 2.12.1", + "once_cell", + "ordered-float", + "purl", + "regex", + "serde", + "serde_json", + "spdx 0.10.9", + "strum 0.26.3", + "thiserror 1.0.69", + "time", + "uuid", + "xml-rs", +] + +[[package]] +name = "cyclonedx-bom-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c50341f21df64b412b4f917e34b7aa786c092d64f3f905f478cb76950c7e980c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "darling" version = "0.20.11" @@ -778,6 +1257,26 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + [[package]] name = "der" version = "0.7.10" @@ -799,6 +1298,17 @@ dependencies = [ "serde", ] +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "derive_more" version = "0.99.20" @@ -819,6 +1329,7 @@ dependencies = [ "block-buffer", "const-oid", "crypto-common", + "subtle", ] [[package]] @@ -874,18 +1385,39 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "dlv-list" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" +dependencies = [ + "const-random", +] + [[package]] name = "doc-comment" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + [[package]] name = "drain_filter_polyfill" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408" +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "dyn-clone" version = "1.0.19" @@ -898,24 +1430,92 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +[[package]] +name = "embed-manifest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cdc65b1cf9e871453ce2f86f5aaec24ff2eaa36a1fa3e02e441dddc3613b99" + [[package]] name = "encode_unicode" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "encoding_rs_io" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83" +dependencies = [ + "encoding_rs", +] + +[[package]] +name = "endi" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + [[package]] name = "endian-type" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "env_home" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" + [[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + [[package]] name = "errno" version = "0.3.13" @@ -936,6 +1536,37 @@ dependencies = [ "str-buf", ] +[[package]] +name = "etcetera" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de48cc4d1c1d97a20fd819def54b890cadde72ed3ad0c614822a0a433361be96" +dependencies = [ + "cfg-if", + "windows-sys 0.61.2", +] + +[[package]] +name = "event-listener" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + [[package]] name = "eventsource-stream" version = "0.2.3" @@ -976,6 +1607,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.1.2" @@ -983,15 +1620,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", + "libz-rs-sys", "miniz_oxide", ] +[[package]] +name = "fluent-uri" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -1001,6 +1660,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs-err" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62d91fd049c123429b018c47887d3f75a265540dd3c30ba9cb7bae9197edb03a" +dependencies = [ + "autocfg", + "tokio", +] + [[package]] name = "futures" version = "0.3.31" @@ -1210,22 +1879,84 @@ dependencies = [ ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "gloo-timers" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] [[package]] -name = "hashbrown" -version = "0.15.4" +name = "goblin" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "4db6758c546e6f81f265638c980e5e84dfbda80cfd8e89e02f83454c8e8124bd" +dependencies = [ + "log", + "plain", + "scroll", +] [[package]] -name = "heck" -version = "0.4.1" +name = "h2" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.12.1", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "heck" @@ -1239,6 +1970,33 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "html-escape" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" +dependencies = [ + "utf8-width", +] + [[package]] name = "http" version = "1.3.1" @@ -1273,6 +2031,12 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-content-range" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66cdb727cec723cee65912a74a7f9f0c3ad0c6f9df4f03d05a5c7a15398bbad1" + [[package]] name = "httparse" version = "1.10.1" @@ -1300,6 +2064,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", + "h2", "http", "http-body", "httparse", @@ -1321,6 +2086,7 @@ dependencies = [ "hyper", "hyper-util", "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -1334,7 +2100,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-channel", "futures-core", @@ -1347,9 +2113,11 @@ dependencies = [ "percent-encoding", "pin-project-lite", "socket2 0.6.0", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] @@ -1364,7 +2132,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.61.2", ] [[package]] @@ -1518,13 +2286,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.16.1", "serde", + "serde_core", ] [[package]] @@ -1533,13 +2302,35 @@ version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ - "console", + "console 0.15.11", "number_prefix", "portable-atomic", "unicode-width 0.2.1", "web-time", ] +[[package]] +name = "indicatif" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9375e112e4b463ec1b1c6c011953545c65a30164fbab5b581df32b3abf0dcb88" +dependencies = [ + "console 0.16.1", + "portable-atomic", + "unicode-width 0.2.1", + "unit-prefix", + "web-time", +] + +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + [[package]] name = "inflections" version = "1.1.1" @@ -1552,6 +2343,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ + "block-padding", "generic-array", ] @@ -1591,6 +2383,31 @@ dependencies = [ "serde", ] +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "is_ci" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1606,12 +2423,62 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" +dependencies = [ + "jiff-static", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", + "windows-sys 0.60.2", +] + +[[package]] +name = "jiff-static" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + [[package]] name = "jni" version = "0.21.1" @@ -1634,6 +2501,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.3", + "libc", +] + [[package]] name = "js-sys" version = "0.3.77" @@ -1644,6 +2521,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "junction" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c52f6e1bf39a7894f618c9d378904a11dbd7e10fe3ec20d1173600e79b1408d8" +dependencies = [ + "scopeguard", + "windows-sys 0.60.2", +] + [[package]] name = "lazy-regex" version = "3.4.1" @@ -1688,6 +2575,16 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +[[package]] +name = "libmimalloc-sys" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "libredox" version = "0.1.6" @@ -1699,6 +2596,15 @@ dependencies = [ "redox_syscall 0.5.15", ] +[[package]] +name = "libz-rs-sys" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" +dependencies = [ + "zlib-rs", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -1745,6 +2651,38 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +[[package]] +name = "lzma-rs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e" +dependencies = [ + "byteorder", + "crc", +] + +[[package]] +name = "lzma-sys" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "mailparse" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60819a97ddcb831a5614eb3b0174f3620e793e97e09195a395bfa948fd68ed2f" +dependencies = [ + "charset", + "data-encoding", + "quoted_printable", +] + [[package]] name = "maplit" version = "1.0.2" @@ -1766,12 +2704,31 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + [[package]] name = "memchr" version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +[[package]] +name = "memmap2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.6.5" @@ -1781,6 +2738,52 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miette" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" +dependencies = [ + "cfg-if", + "miette-derive", + "owo-colors", + "supports-color", + "supports-hyperlinks", + "supports-unicode", + "terminal_size", + "textwrap", + "unicode-width 0.1.14", +] + +[[package]] +name = "miette-derive" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "mimalloc" +version = "0.1.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1ee66a4b64c74f4ef288bcbb9192ad9c3feaad75193129ac8509af543894fd8" +dependencies = [ + "libmimalloc-sys", +] + [[package]] name = "mime" version = "0.3.17" @@ -1823,6 +2826,44 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "miow" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "536bfad37a309d62069485248eeaba1e8d9853aaf951caaeaed0585a95346f08" +dependencies = [ + "windows-sys 0.60.2", +] + +[[package]] +name = "munge" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" +dependencies = [ + "munge_macro", +] + +[[package]] +name = "munge_macro" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "nanoid" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +dependencies = [ + "rand 0.8.5", +] + [[package]] name = "ndk-context" version = "0.1.1" @@ -1848,7 +2889,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "memoffset", + "memoffset 0.6.5", ] [[package]] @@ -1861,6 +2902,7 @@ dependencies = [ "cfg-if", "cfg_aliases", "libc", + "memoffset 0.9.1", ] [[package]] @@ -1895,25 +2937,67 @@ dependencies = [ ] [[package]] -name = "num-bigint-dig" -version = "0.8.4" +name = "nu-ansi-term" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "smallvec", - "zeroize", + "windows-sys 0.60.2", ] [[package]] -name = "num-conv" -version = "0.1.0" +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" @@ -1937,6 +3021,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2005,18 +3100,79 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "open" +version = "5.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + [[package]] name = "option-ext" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ordered-multimap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" +dependencies = [ + "dlv-list", + "hashbrown 0.14.5", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +dependencies = [ + "memchr", +] + [[package]] name = "overload" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "owo-colors" +version = "4.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" + [[package]] name = "parking" version = "2.2.1" @@ -2052,6 +3208,18 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + [[package]] name = "peg" version = "0.6.3" @@ -2085,7 +3253,7 @@ version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ - "base64", + "base64 0.22.1", "serde", ] @@ -2104,6 +3272,18 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.4", + "indexmap 2.12.1", + "serde", +] + [[package]] name = "pin-project" version = "1.1.10" @@ -2157,6 +3337,18 @@ dependencies = [ "spki", ] +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "polyval" version = "0.6.2" @@ -2175,6 +3367,15 @@ version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "potential_utf" version = "0.1.2" @@ -2199,6 +3400,26 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "priority-queue" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93980406f12d9f8140ed5abe7155acb10bb1e69ea55c88960b9c2f117445ef96" +dependencies = [ + "equivalent", + "indexmap 2.12.1", + "serde", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit 0.23.7", +] + [[package]] name = "proc-macro2" version = "1.0.95" @@ -2208,6 +3429,29 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "procfs" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" +dependencies = [ + "bitflags 2.9.1", + "flate2", + "hex", + "procfs-core", + "rustix 0.38.44", +] + +[[package]] +name = "procfs-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" +dependencies = [ + "bitflags 2.9.1", + "hex", +] + [[package]] name = "promptly" version = "0.3.1" @@ -2217,6 +3461,47 @@ dependencies = [ "rustyline", ] +[[package]] +name = "ptr_meta" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "purl" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60ebe4262ae91ddd28c8721111a0a6e9e58860e211fc92116c4bb85c98fd96ad" +dependencies = [ + "hex", + "percent-encoding", + "thiserror 2.0.12", +] + +[[package]] +name = "quick-xml" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "quinn" version = "0.11.8" @@ -2281,6 +3566,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "quoted_printable" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "640c9bd8497b02465aeef5375144c26062e0dcd5939dfcbb0f5db76cb8c17c73" + [[package]] name = "r-efi" version = "5.3.0" @@ -2297,6 +3588,15 @@ dependencies = [ "nibble_vec", ] +[[package]] +name = "rancor" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" +dependencies = [ + "ptr_meta", +] + [[package]] name = "rand" version = "0.8.5" @@ -2356,6 +3656,26 @@ dependencies = [ "getrandom 0.3.3", ] +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "redox_syscall" version = "0.3.5" @@ -2405,6 +3725,18 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "reflink-copy" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23bbed272e39c47a095a5242218a67412a220006842558b03fe2935e8f3d7b92" +dependencies = [ + "cfg-if", + "libc", + "rustix 1.0.8", + "windows 0.62.0", +] + [[package]] name = "regex" version = "1.11.1" @@ -2456,55 +3788,165 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] -name = "reqwest" -version = "0.12.22" +name = "rend" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqsign" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea386ba750000b6e59f760a08bdcca9461809b95e6f8f209ce5724056802824f" dependencies = [ - "base64", + "reqsign-aws-v4", + "reqsign-command-execute-tokio", + "reqsign-core", + "reqsign-file-read-tokio", + "reqsign-http-send-reqwest", +] + +[[package]] +name = "reqsign-aws-v4" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4510c2a3e42b653cf788d560a3d54b0ae4cc315a62aaba773554f18319c0db0b" +dependencies = [ + "anyhow", + "async-trait", "bytes", - "futures-core", - "futures-util", + "form_urlencoded", "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", "log", - "mime_guess", "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-pki-types", + "quick-xml", + "reqsign-core", + "rust-ini", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tokio-util", - "tower 0.5.2", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "webpki-roots", + "sha1", ] [[package]] -name = "reqwest-eventsource" -version = "0.6.0" +name = "reqsign-command-execute-tokio" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632c55746dbb44275691640e7b40c907c16a2dc1a5842aa98aaec90da6ec6bde" +checksum = "38b53d033600f533135afec8e97be99c80fcf8177f6285da6c7300955d5377a1" dependencies = [ - "eventsource-stream", - "futures-core", + "async-trait", + "reqsign-core", + "tokio", +] + +[[package]] +name = "reqsign-core" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39da118ccf3bdb067ac6cc40136fec99bc5ba418cbd388dc88e4ce0e5d0b1423" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.22.1", + "bytes", + "form_urlencoded", + "hex", + "hmac", + "http", + "jiff", + "log", + "percent-encoding", + "sha1", + "sha2", + "windows-sys 0.61.2", +] + +[[package]] +name = "reqsign-file-read-tokio" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "669ea66036266a9ac371d2e63cc7d345e69994da0168b4e6f3487fe21e126f76" +dependencies = [ + "anyhow", + "async-trait", + "reqsign-core", + "tokio", +] + +[[package]] +name = "reqsign-http-send-reqwest" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46186bce769674f9200ad01af6f2ca42de3e819ddc002fff1edae135bfb6cd9c" +dependencies = [ + "anyhow", + "async-trait", + "bytes", + "futures-channel", + "http", + "http-body-util", + "reqsign-core", + "reqwest", + "wasm-bindgen-futures", +] + +[[package]] +name = "reqwest" +version = "0.12.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +dependencies = [ + "async-compression", + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-native-certs", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tokio-util", + "tower 0.5.2", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", +] + +[[package]] +name = "reqwest-eventsource" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "632c55746dbb44275691640e7b40c907c16a2dc1a5842aa98aaec90da6ec6bde" +dependencies = [ + "eventsource-stream", + "futures-core", "futures-timer", "mime", "nom", @@ -2513,6 +3955,15 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "retry-policies" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5875471e6cab2871bc150ecb8c727db5113c9338cc3354dc5ee3425b6aa40a1c" +dependencies = [ + "rand 0.8.5", +] + [[package]] name = "ring" version = "0.17.14" @@ -2527,6 +3978,37 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rkyv" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a640b26f007713818e9a9b65d34da1cf58538207b052916a83d80e43f3ffa4" +dependencies = [ + "bytecheck", + "bytes", + "hashbrown 0.15.4", + "indexmap 2.12.1", + "munge", + "ptr_meta", + "rancor", + "rend", + "rkyv_derive", + "smallvec", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "rmcp" version = "0.5.0" @@ -2534,7 +4016,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2faf35b7d3c4b7f8c21c45bb014011b32a0ce6444bf6094da04daab01a8c3c34" dependencies = [ "axum", - "base64", + "base64 0.22.1", "bytes", "chrono", "futures", @@ -2571,6 +4053,28 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + [[package]] name = "rpassword" version = "7.4.0" @@ -2612,6 +4116,26 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rust-ini" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" +dependencies = [ + "cfg-if", + "ordered-multimap", +] + +[[package]] +name = "rust-netrc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e98097f62769f92dbf95fb51f71c0a68ec18a4ee2e70e0d3e4f47ac005d63e9" +dependencies = [ + "shellexpand", + "thiserror 1.0.69", +] + [[package]] name = "rustc-demangle" version = "0.1.25" @@ -2664,6 +4188,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pki-types" version = "1.12.0" @@ -2730,6 +4266,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "schemars" version = "0.9.0" @@ -2754,6 +4299,7 @@ dependencies = [ "schemars_derive", "serde", "serde_json", + "url", ] [[package]] @@ -2774,6 +4320,32 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "scroll" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1257cd4248b4132760d6524d6dda4e053bc648c9070b960929bf50cfb1e7add" +dependencies = [ + "scroll_derive", +] + +[[package]] +name = "scroll_derive" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed76efe62313ab6610570951494bdaa81568026e0318eaa55f167de70eeea67d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "sealed" version = "0.5.0" @@ -2786,20 +4358,104 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "secrecy" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a" +dependencies = [ + "zeroize", +] + +[[package]] +name = "secret-service" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a62d7f86047af0077255a29494136b9aaaf697c76ff70b8e49cded4e2623c14" +dependencies = [ + "aes", + "cbc", + "futures-util", + "generic-array", + "getrandom 0.2.16", + "hkdf", + "num", + "once_cell", + "serde", + "sha2", + "zbus", +] + +[[package]] +name = "security-framework" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +dependencies = [ + "bitflags 2.9.1", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "self-replace" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ec815b5eab420ab893f63393878d89c90fdd94c0bcc44c07abb8ad95552fb7" +dependencies = [ + "fastrand", + "tempfile", + "windows-sys 0.52.0", +] + [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -2859,6 +4515,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -2877,11 +4542,11 @@ version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ - "base64", + "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.10.0", + "indexmap 2.12.1", "schemars 0.9.0", "schemars 1.0.4", "serde", @@ -2903,6 +4568,17 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "sha2" version = "0.10.9" @@ -2923,6 +4599,23 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shell-escape" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" + +[[package]] +name = "shellexpand" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" +dependencies = [ + "bstr", + "dirs", + "os_str_bytes", +] + [[package]] name = "shlex" version = "1.3.0" @@ -2949,7 +4642,19 @@ dependencies = [ ] [[package]] -name = "slab" +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "slab" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" @@ -3019,6 +4724,24 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "spdx" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e17e880bafaeb362a7b751ec46bdc5b61445a188f80e0606e68167cd540fa3" +dependencies = [ + "smallvec", +] + +[[package]] +name = "spdx" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cf87c0efffc158b9dde4d6e0567a43e4383adc4c949e687a2039732db2f23a" +dependencies = [ + "smallvec", +] + [[package]] name = "spin" version = "0.9.8" @@ -3033,7 +4756,7 @@ checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82" dependencies = [ "lazy_static", "maplit", - "strum", + "strum 0.24.1", ] [[package]] @@ -3065,6 +4788,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "str-buf" version = "1.0.6" @@ -3083,7 +4812,16 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "strum_macros", + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", ] [[package]] @@ -3099,12 +4837,46 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.104", +] + [[package]] name = "subtle" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "supports-color" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" +dependencies = [ + "is_ci", +] + +[[package]] +name = "supports-hyperlinks" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b" + +[[package]] +name = "supports-unicode" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" + [[package]] name = "syn" version = "1.0.109" @@ -3180,6 +4952,54 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "sys-info" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.1", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tar" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "target-lexicon" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" + [[package]] name = "tempfile" version = "3.21.0" @@ -3280,6 +5100,26 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "tikv-jemalloc-sys" +version = "0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "tikv-jemallocator" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0359b4327f954e0567e69fb191cf1436617748813819c94b8cd4a431422d053a" +dependencies = [ + "libc", + "tikv-jemalloc-sys", +] + [[package]] name = "time" version = "0.3.41" @@ -3311,6 +5151,15 @@ dependencies = [ "time-core", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinystr" version = "0.8.1" @@ -3364,6 +5213,7 @@ dependencies = [ "slab", "socket2 0.5.10", "tokio-macros", + "tracing", "windows-sys 0.52.0", ] @@ -3397,6 +5247,7 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", + "tokio-util", ] [[package]] @@ -3448,9 +5299,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + +[[package]] +name = "toml" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" +dependencies = [ + "foldhash 0.2.0", + "indexmap 2.12.1", + "serde_core", + "serde_spanned 1.0.3", + "toml_datetime 0.7.3", + "toml_parser", + "toml_writer", + "winnow", ] [[package]] @@ -3462,26 +5329,65 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.12.1", "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", "toml_write", "winnow", ] +[[package]] +name = "toml_edit" +version = "0.23.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +dependencies = [ + "indexmap 2.12.1", + "serde_core", + "serde_spanned 1.0.3", + "toml_datetime 0.7.3", + "toml_parser", + "toml_writer", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ + "winnow", +] + [[package]] name = "toml_write" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" + [[package]] name = "tower" version = "0.3.37" @@ -3489,6 +5395,7 @@ dependencies = [ "tokio", "tower-api", "tower-cmd", + "uv", ] [[package]] @@ -3533,10 +5440,11 @@ dependencies = [ "crypto", "ctrlc", "cucumber", + "dirs", "futures", "futures-util", "http", - "indicatif", + "indicatif 0.17.11", "promptly", "reqwest", "reqwest-eventsource", @@ -3553,12 +5461,13 @@ dependencies = [ "tokio", "tokio-test", "tokio-util", - "toml", - "toml_edit", + "toml 0.8.23", + "toml_edit 0.22.27", "tower-api", "tower-package", "tower-runtime", "tower-telemetry", + "tower-uv", "tower-version", "tracing-subscriber", "uuid", @@ -3642,13 +5551,7 @@ dependencies = [ name = "tower-uv" version = "0.3.37" dependencies = [ - "async-compression", - "async_zip", - "dirs", - "futures-lite", - "reqwest", "tokio", - "tokio-tar", "tower-telemetry", ] @@ -3737,7 +5640,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", - "nu-ansi-term", + "nu-ansi-term 0.46.0", "once_cell", "regex", "serde", @@ -3751,6 +5654,18 @@ dependencies = [ "tracing-serde", ] +[[package]] +name = "tracing-tree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac87aa03b6a4d5a7e4810d1a80c19601dbe0f8a837e9177f23af721c7ba7beec" +dependencies = [ + "nu-ansi-term 0.50.3", + "tracing-core", + "tracing-log", + "tracing-subscriber", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -3777,12 +5692,29 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "typenum" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.1", + "tempfile", + "winapi", +] + [[package]] name = "unicase" version = "2.8.1" @@ -3819,6 +5751,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +[[package]] +name = "unit-prefix" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" + [[package]] name = "universal-hash" version = "0.5.1" @@ -3829,6 +5767,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "unscanny" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47" + [[package]] name = "untrusted" version = "0.9.0" @@ -3847,6 +5791,12 @@ dependencies = [ "serde", ] +[[package]] +name = "utf8-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1292c0d970b54115d14f2492fe0170adf21d68a1de108eebc51c1df4f346a091" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -3867,42 +5817,1575 @@ checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" dependencies = [ "getrandom 0.3.3", "js-sys", + "serde", "wasm-bindgen", ] [[package]] -name = "valuable" -version = "0.1.1" +name = "uv" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +checksum = "963f57e204b8b7b2f5ae68681261520a830f7a7c8e616839117c37938c3d50e4" +dependencies = [ + "anstream", + "anyhow", + "arrayvec", + "astral-version-ranges", + "base64 0.22.1", + "clap", + "console 0.16.1", + "ctrlc", + "dotenvy", + "dunce", + "embed-manifest", + "flate2", + "fs-err", + "futures", + "h2", + "http", + "indexmap 2.12.1", + "indicatif 0.18.3", + "indoc", + "itertools 0.14.0", + "miette", + "nix 0.30.1", + "open", + "owo-colors", + "petgraph", + "regex", + "reqwest", + "rkyv", + "rustc-hash", + "self-replace", + "serde", + "serde_json", + "tar", + "tempfile", + "textwrap", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "toml 0.9.8", + "toml_edit 0.23.7", + "tracing", + "tracing-subscriber", + "tracing-tree", + "unicode-width 0.2.1", + "url", + "uuid", + "uv-auth", + "uv-bin-install", + "uv-build-backend", + "uv-build-frontend", + "uv-cache", + "uv-cache-info", + "uv-cache-key", + "uv-cli", + "uv-client", + "uv-configuration", + "uv-console", + "uv-dispatch", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-extract", + "uv-flags", + "uv-fs", + "uv-git", + "uv-git-types", + "uv-install-wheel", + "uv-installer", + "uv-logging", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-performance-memory-allocator", + "uv-platform", + "uv-platform-tags", + "uv-preview", + "uv-publish", + "uv-pypi-types", + "uv-python", + "uv-redacted", + "uv-requirements", + "uv-requirements-txt", + "uv-resolver", + "uv-scripts", + "uv-settings", + "uv-shell", + "uv-static", + "uv-tool", + "uv-torch", + "uv-trampoline-builder", + "uv-types", + "uv-version", + "uv-virtualenv", + "uv-warnings", + "uv-workspace", + "walkdir", + "which", + "windows 0.59.0", + "zip", +] [[package]] -name = "version_check" -version = "0.9.5" +name = "uv-auth" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +checksum = "f3832bc1d3511c0451f27b7786c111b8278fc7bf89032759c34d08efe770b1d6" +dependencies = [ + "anyhow", + "arcstr", + "astral-reqwest-middleware", + "async-trait", + "base64 0.22.1", + "etcetera", + "fs-err", + "futures", + "http", + "jiff", + "percent-encoding", + "reqsign", + "reqwest", + "rust-netrc", + "rustc-hash", + "schemars 1.0.4", + "serde", + "serde_json", + "thiserror 2.0.12", + "tokio", + "toml 0.9.8", + "tracing", + "url", + "uv-cache-key", + "uv-fs", + "uv-keyring", + "uv-once-map", + "uv-preview", + "uv-redacted", + "uv-small-str", + "uv-state", + "uv-static", + "uv-warnings", +] [[package]] -name = "walkdir" -version = "2.5.0" +name = "uv-bin-install" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +checksum = "ee594ca51f213542d43f9a042508608048ad73de4ba88a3704961ab2a490f18c" dependencies = [ - "same-file", - "winapi-util", + "astral-reqwest-middleware", + "astral-reqwest-retry", + "fs-err", + "futures", + "reqwest", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "uv-cache", + "uv-client", + "uv-distribution-filename", + "uv-extract", + "uv-pep440", + "uv-platform", + "uv-redacted", ] [[package]] -name = "want" -version = "0.3.1" +name = "uv-build-backend" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +checksum = "a045ed469761b5a22e41abedbfe466b77baa3694fe2890583bf1bbc8d38cf913" dependencies = [ - "try-lock", + "astral-version-ranges", + "base64 0.22.1", + "csv", + "flate2", + "fs-err", + "globset", + "itertools 0.14.0", + "rustc-hash", + "schemars 1.0.4", + "serde", + "sha2", + "spdx 0.12.0", + "tar", + "thiserror 2.0.12", + "toml 0.9.8", + "tracing", + "uv-distribution-filename", + "uv-fs", + "uv-globfilter", + "uv-macros", + "uv-normalize", + "uv-options-metadata", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-version", + "uv-warnings", + "walkdir", + "zip", ] [[package]] -name = "wasi" +name = "uv-build-frontend" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0289e72e83c55823bcafc2f4943484bd7b3579389d19f7ba0e035d784dfdda4d" +dependencies = [ + "anstream", + "fs-err", + "indoc", + "itertools 0.14.0", + "owo-colors", + "regex", + "rustc-hash", + "serde", + "serde_json", + "tempfile", + "thiserror 2.0.12", + "tokio", + "toml_edit 0.23.7", + "tracing", + "uv-cache-key", + "uv-configuration", + "uv-distribution", + "uv-distribution-types", + "uv-fs", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-preview", + "uv-pypi-types", + "uv-python", + "uv-static", + "uv-types", + "uv-virtualenv", + "uv-warnings", + "uv-workspace", +] + +[[package]] +name = "uv-cache" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ca147111dec3cf0fcb822ffccc97664905c4bd1255ddb1c029ee9b425fc12c" +dependencies = [ + "clap", + "fs-err", + "nanoid", + "rmp-serde", + "rustc-hash", + "same-file", + "serde", + "tempfile", + "tracing", + "uv-cache-info", + "uv-cache-key", + "uv-dirs", + "uv-distribution-types", + "uv-fs", + "uv-normalize", + "uv-pypi-types", + "uv-redacted", + "uv-static", + "walkdir", +] + +[[package]] +name = "uv-cache-info" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defab6abfffb5de76461565c1991adf7a771d0afaee30f1599a1d981dd4b1754" +dependencies = [ + "fs-err", + "globwalk", + "schemars 1.0.4", + "serde", + "thiserror 2.0.12", + "toml 0.9.8", + "tracing", + "uv-fs", + "walkdir", +] + +[[package]] +name = "uv-cache-key" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b3235a41ad25f661300bf8c75024f710d8b5e6fd267a15f31575f260d06bf09" +dependencies = [ + "hex", + "memchr", + "percent-encoding", + "seahash", + "url", + "uv-redacted", +] + +[[package]] +name = "uv-cli" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf178ae239e05951dfd4bc26d43b440cd414ecc14a2bd8a21dbc50e3a7676e5" +dependencies = [ + "anstream", + "anyhow", + "clap", + "clap_complete_command", + "fs-err", + "serde", + "url", + "uv-auth", + "uv-cache", + "uv-configuration", + "uv-distribution-types", + "uv-install-wheel", + "uv-normalize", + "uv-pep508", + "uv-preview", + "uv-pypi-types", + "uv-python", + "uv-redacted", + "uv-resolver", + "uv-settings", + "uv-static", + "uv-torch", + "uv-version", + "uv-warnings", + "uv-workspace", +] + +[[package]] +name = "uv-client" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95d35067c227fcf250f67194ca3916f451aeefacc9efaa738854f2ed13edf2d" +dependencies = [ + "anyhow", + "astral-reqwest-middleware", + "astral-reqwest-retry", + "astral-tl", + "astral_async_http_range_reader", + "astral_async_zip", + "async-trait", + "bytecheck", + "fs-err", + "futures", + "h2", + "html-escape", + "http", + "itertools 0.14.0", + "jiff", + "percent-encoding", + "reqwest", + "rkyv", + "rmp-serde", + "rustc-hash", + "serde", + "serde_json", + "sys-info", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "uv-auth", + "uv-cache", + "uv-cache-key", + "uv-configuration", + "uv-distribution-filename", + "uv-distribution-types", + "uv-fs", + "uv-metadata", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-preview", + "uv-pypi-types", + "uv-redacted", + "uv-small-str", + "uv-static", + "uv-torch", + "uv-version", + "uv-warnings", +] + +[[package]] +name = "uv-configuration" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3c5cb7d77a4ad30c595705ae2ef7e427af33260f19b14d85b1bf06ead6d6e7b" +dependencies = [ + "clap", + "either", + "fs-err", + "rayon", + "rustc-hash", + "same-file", + "schemars 1.0.4", + "serde", + "serde-untagged", + "thiserror 2.0.12", + "tracing", + "url", + "uv-auth", + "uv-cache", + "uv-cache-info", + "uv-distribution-types", + "uv-git", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-static", +] + +[[package]] +name = "uv-console" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49edf46fbbfba2de1e981ab345fcbac62862fb5b268c8abb7b233184a7cc2233" +dependencies = [ + "console 0.16.1", +] + +[[package]] +name = "uv-dirs" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "550acdc1c48b767fbf1c1a3df4ff40c877ba2bef09f8b28889c9e2529874ba65" +dependencies = [ + "etcetera", + "fs-err", + "tracing", + "uv-static", +] + +[[package]] +name = "uv-dispatch" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5636627331a7b85fa8b2c1bc567fa6ce128353561df382065a65ab3e5d9161bf" +dependencies = [ + "anyhow", + "futures", + "itertools 0.14.0", + "rustc-hash", + "thiserror 2.0.12", + "tokio", + "tracing", + "uv-build-backend", + "uv-build-frontend", + "uv-cache", + "uv-client", + "uv-configuration", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-git", + "uv-install-wheel", + "uv-installer", + "uv-platform-tags", + "uv-preview", + "uv-pypi-types", + "uv-python", + "uv-resolver", + "uv-types", + "uv-version", + "uv-workspace", +] + +[[package]] +name = "uv-distribution" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5a987af7a249fa0ecb941970943fd8d994355ae2a993c03db137b106d04865" +dependencies = [ + "anyhow", + "astral-reqwest-middleware", + "either", + "fs-err", + "futures", + "nanoid", + "owo-colors", + "reqwest", + "rmp-serde", + "rustc-hash", + "serde", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "toml 0.9.8", + "tracing", + "url", + "uv-auth", + "uv-cache", + "uv-cache-info", + "uv-client", + "uv-configuration", + "uv-distribution-filename", + "uv-distribution-types", + "uv-extract", + "uv-fs", + "uv-git", + "uv-git-types", + "uv-metadata", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-redacted", + "uv-types", + "uv-workspace", + "walkdir", + "zip", +] + +[[package]] +name = "uv-distribution-filename" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "811f37337c93acaa3d53bffbaa228391435b180b0cd50ce1ac753c384d20098b" +dependencies = [ + "memchr", + "rkyv", + "serde", + "smallvec", + "thiserror 2.0.12", + "uv-cache-key", + "uv-normalize", + "uv-pep440", + "uv-platform-tags", + "uv-small-str", +] + +[[package]] +name = "uv-distribution-types" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a02c874aa7fdd9d5d87da763ab6d2cf6aa1c638013616c497d7245d5d5074815" +dependencies = [ + "arcstr", + "astral-version-ranges", + "bitflags 2.9.1", + "fs-err", + "http", + "itertools 0.14.0", + "jiff", + "owo-colors", + "percent-encoding", + "petgraph", + "rkyv", + "rustc-hash", + "schemars 1.0.4", + "serde", + "serde_json", + "thiserror 2.0.12", + "tracing", + "url", + "uv-auth", + "uv-cache-info", + "uv-cache-key", + "uv-distribution-filename", + "uv-fs", + "uv-git-types", + "uv-install-wheel", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-redacted", + "uv-small-str", + "uv-warnings", +] + +[[package]] +name = "uv-extract" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "615b4865eab99c881dfb1b18c132c387d2c57db58c9f46f168ef86ab1940699e" +dependencies = [ + "astral-tokio-tar", + "astral_async_zip", + "async-compression", + "blake2", + "fs-err", + "futures", + "md-5", + "rayon", + "regex", + "reqwest", + "rustc-hash", + "sha2", + "tar", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "uv-configuration", + "uv-distribution-filename", + "uv-pypi-types", + "uv-static", + "xz2", + "zip", + "zstd", +] + +[[package]] +name = "uv-flags" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a563a3bcc7097cbafea5c22b6549de10a9792eab16b32df9b0d3313c5d217429" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "uv-fs" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6af50bd07da7046aa5727909a57536554ce03a56b43533a01a4913ca2c3a2b1" +dependencies = [ + "backon", + "dunce", + "either", + "encoding_rs_io", + "fs-err", + "junction", + "path-slash", + "percent-encoding", + "rustix 1.0.8", + "same-file", + "schemars 1.0.4", + "serde", + "tempfile", + "tokio", + "tracing", + "windows 0.59.0", +] + +[[package]] +name = "uv-git" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a9e63ce269388b6b0560ef83e7558e9a4c0e8ba5a3f27535abe11407234e5a" +dependencies = [ + "anyhow", + "astral-reqwest-middleware", + "cargo-util", + "dashmap", + "fs-err", + "owo-colors", + "reqwest", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "uv-auth", + "uv-cache-key", + "uv-fs", + "uv-git-types", + "uv-redacted", + "uv-static", + "uv-version", + "uv-warnings", + "which", +] + +[[package]] +name = "uv-git-types" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf95d7c7b1e93d4d914998b24c8c0b90a719ffa4efc614447858d93878218e3" +dependencies = [ + "serde", + "thiserror 2.0.12", + "tracing", + "url", + "uv-redacted", + "uv-static", +] + +[[package]] +name = "uv-globfilter" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a94b4fd576d20a1a509f3c068c70077dbe520ef9854d2fd18811803af934049e" +dependencies = [ + "globset", + "owo-colors", + "regex", + "regex-automata 0.4.9", + "thiserror 2.0.12", + "tracing", + "walkdir", +] + +[[package]] +name = "uv-install-wheel" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1d313617ed8165df9910e17f70ebf2e8a4c52dff4baa7cc8009bbd1b0392e62" +dependencies = [ + "clap", + "configparser", + "csv", + "data-encoding", + "fs-err", + "mailparse", + "owo-colors", + "pathdiff", + "reflink-copy", + "regex", + "rustc-hash", + "same-file", + "schemars 1.0.4", + "self-replace", + "serde", + "serde_json", + "sha2", + "tempfile", + "thiserror 2.0.12", + "tracing", + "uv-distribution-filename", + "uv-flags", + "uv-fs", + "uv-normalize", + "uv-pep440", + "uv-preview", + "uv-pypi-types", + "uv-shell", + "uv-trampoline-builder", + "uv-warnings", + "walkdir", +] + +[[package]] +name = "uv-installer" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "536ad01d81e132f240f350079159e8fc0cfef630b7eb5c98bd99288ca24b6d71" +dependencies = [ + "anyhow", + "async-channel", + "fs-err", + "futures", + "owo-colors", + "rayon", + "rustc-hash", + "same-file", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "uv-cache", + "uv-cache-info", + "uv-cache-key", + "uv-configuration", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-fs", + "uv-git-types", + "uv-install-wheel", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-preview", + "uv-pypi-types", + "uv-python", + "uv-redacted", + "uv-static", + "uv-types", + "uv-warnings", + "walkdir", +] + +[[package]] +name = "uv-keyring" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f71d2d37a4a8f355c1276fadaaf3f82c9bdeba16694d5e4f2b2fba13f255ea19" +dependencies = [ + "async-trait", + "byteorder", + "secret-service", + "security-framework", + "thiserror 2.0.12", + "tokio", + "windows 0.59.0", + "zeroize", +] + +[[package]] +name = "uv-logging" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15d41bb9e6bcf2598e09259d21173b532b3339ac2831c28eee0981a4610460c5" +dependencies = [ + "jiff", + "owo-colors", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "uv-macros" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9efefd6996f7ec4286df4f74aca92636a48c8755c8c6d41ac6259f7685479964" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", + "textwrap", +] + +[[package]] +name = "uv-metadata" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "980ec20c2ffbdf3e899a6834efbaafbd84cada1845eaeefbb76d64604254cd58" +dependencies = [ + "astral_async_zip", + "fs-err", + "futures", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "uv-distribution-filename", + "uv-normalize", + "uv-pypi-types", + "zip", +] + +[[package]] +name = "uv-normalize" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "805ac0ee7e4795e853248725fcc378df329291a3d69290c990c3e0b7b0a31a6f" +dependencies = [ + "rkyv", + "schemars 1.0.4", + "serde", + "uv-small-str", +] + +[[package]] +name = "uv-once-map" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac5bfa1b793c6a8fbde819f9cae927572d901a0cce6fb0be70b30e6522435099" +dependencies = [ + "dashmap", + "futures", + "tokio", +] + +[[package]] +name = "uv-options-metadata" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7db9e9a9fe8127c88eef269d52446884799d2b92d519726e622e2440c2e871d" +dependencies = [ + "serde", +] + +[[package]] +name = "uv-pep440" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de9128803458ce72376a8a24301ab6c1237769ff6848f92097c23970b76a9a00" +dependencies = [ + "astral-version-ranges", + "rkyv", + "serde", + "tracing", + "unicode-width 0.2.1", + "unscanny", + "uv-cache-key", +] + +[[package]] +name = "uv-pep508" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135225aa6a3932f3fad4036ac93492ca8ccaa0d77dde9849bb86b37d7350f1c0" +dependencies = [ + "arcstr", + "astral-version-ranges", + "boxcar", + "indexmap 2.12.1", + "itertools 0.14.0", + "regex", + "rkyv", + "rustc-hash", + "schemars 1.0.4", + "serde", + "smallvec", + "thiserror 2.0.12", + "unicode-width 0.2.1", + "url", + "uv-cache-key", + "uv-fs", + "uv-normalize", + "uv-pep440", + "uv-redacted", +] + +[[package]] +name = "uv-performance-memory-allocator" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "269e0eac113b6aa4d4a89fc3dc929afbed763d99f715308f21cf402bf6e3a964" +dependencies = [ + "mimalloc", + "tikv-jemallocator", +] + +[[package]] +name = "uv-platform" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00c051908b8d8d0b27faa2b63448a74cea29d9319d240c1a4b7e2c4d8d021d0f" +dependencies = [ + "fs-err", + "goblin", + "procfs", + "regex", + "target-lexicon", + "thiserror 2.0.12", + "tracing", + "uv-fs", + "uv-platform-tags", + "uv-static", +] + +[[package]] +name = "uv-platform-tags" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ae165a077c9929181165842c95b8d31883db0e4fbc21b868deccc4436ffde1" +dependencies = [ + "memchr", + "rkyv", + "rustc-hash", + "serde", + "thiserror 2.0.12", + "uv-small-str", +] + +[[package]] +name = "uv-preview" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9c1b2d29a63ba700f3c89d94fa796845a01165d308134237fc881f096fee3" +dependencies = [ + "bitflags 2.9.1", + "thiserror 2.0.12", + "uv-warnings", +] + +[[package]] +name = "uv-publish" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059904a9ae4e3cad1a684000dfbc8db8f2a9e40eafc3f1a51be3fafedad86e37" +dependencies = [ + "ambient-id", + "astral-reqwest-middleware", + "astral-reqwest-retry", + "astral-tokio-tar", + "async-compression", + "base64 0.22.1", + "fs-err", + "futures", + "glob", + "itertools 0.14.0", + "reqwest", + "rustc-hash", + "serde", + "serde_json", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "uv-auth", + "uv-cache", + "uv-client", + "uv-configuration", + "uv-distribution-filename", + "uv-distribution-types", + "uv-extract", + "uv-fs", + "uv-metadata", + "uv-pypi-types", + "uv-redacted", + "uv-static", + "uv-warnings", +] + +[[package]] +name = "uv-pypi-types" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81f97f20be87a3455f4b7481bddd159ce0af044a869a37108ebdb2851cd247af" +dependencies = [ + "hashbrown 0.16.1", + "indexmap 2.12.1", + "itertools 0.14.0", + "jiff", + "mailparse", + "petgraph", + "regex", + "rkyv", + "rustc-hash", + "schemars 1.0.4", + "serde", + "serde-untagged", + "thiserror 2.0.12", + "toml_edit 0.23.7", + "tracing", + "url", + "uv-cache-key", + "uv-distribution-filename", + "uv-git-types", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-redacted", + "uv-small-str", +] + +[[package]] +name = "uv-python" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be7ae03d80a39a35e6d2fc28449f31250989e31807185e9bf0a80b9695efd7a2" +dependencies = [ + "anyhow", + "astral-reqwest-middleware", + "astral-reqwest-retry", + "clap", + "configparser", + "dunce", + "fs-err", + "futures", + "indexmap 2.12.1", + "itertools 0.14.0", + "owo-colors", + "ref-cast", + "regex", + "reqwest", + "rmp-serde", + "rustc-hash", + "same-file", + "schemars 1.0.4", + "serde", + "serde_json", + "sys-info", + "target-lexicon", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "uv-cache", + "uv-cache-info", + "uv-cache-key", + "uv-client", + "uv-dirs", + "uv-distribution-filename", + "uv-extract", + "uv-fs", + "uv-install-wheel", + "uv-pep440", + "uv-pep508", + "uv-platform", + "uv-platform-tags", + "uv-preview", + "uv-pypi-types", + "uv-redacted", + "uv-state", + "uv-static", + "uv-trampoline-builder", + "uv-warnings", + "which", + "windows 0.59.0", + "windows-registry", +] + +[[package]] +name = "uv-redacted" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2947902077669811194508d779b7127ba9a459fd8be8eb4bf3ab3e38cdcffc6" +dependencies = [ + "ref-cast", + "schemars 1.0.4", + "serde", + "thiserror 2.0.12", + "url", +] + +[[package]] +name = "uv-requirements" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4ececce3ad74138bf730ced364d1707cfc5bb512fbc1ba3101fd2b40031eef" +dependencies = [ + "anyhow", + "configparser", + "console 0.16.1", + "fs-err", + "futures", + "rustc-hash", + "serde", + "thiserror 2.0.12", + "toml 0.9.8", + "tracing", + "url", + "uv-cache-key", + "uv-client", + "uv-configuration", + "uv-console", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-fs", + "uv-git", + "uv-normalize", + "uv-pep508", + "uv-pypi-types", + "uv-redacted", + "uv-requirements-txt", + "uv-resolver", + "uv-scripts", + "uv-types", + "uv-warnings", +] + +[[package]] +name = "uv-requirements-txt" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "781f74e2ad64cffc756778a399ee70931a419dbc767498d546a60471f6d4d670" +dependencies = [ + "astral-reqwest-middleware", + "fs-err", + "memchr", + "reqwest", + "rustc-hash", + "thiserror 2.0.12", + "tracing", + "unscanny", + "url", + "uv-client", + "uv-configuration", + "uv-distribution-types", + "uv-fs", + "uv-normalize", + "uv-pep508", + "uv-pypi-types", + "uv-redacted", + "uv-warnings", +] + +[[package]] +name = "uv-resolver" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b7af83f221b17fac5101508f77c72988bf6ee1c962fbe89509207d007e9896b" +dependencies = [ + "arcstr", + "astral-pubgrub", + "clap", + "cyclonedx-bom", + "dashmap", + "either", + "fs-err", + "futures", + "hashbrown 0.16.1", + "indexmap 2.12.1", + "itertools 0.14.0", + "jiff", + "owo-colors", + "percent-encoding", + "petgraph", + "rkyv", + "rustc-hash", + "same-file", + "schemars 1.0.4", + "serde", + "smallvec", + "textwrap", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "toml 0.9.8", + "toml_edit 0.23.7", + "tracing", + "url", + "uv-cache-key", + "uv-client", + "uv-configuration", + "uv-console", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-flags", + "uv-fs", + "uv-git", + "uv-git-types", + "uv-metadata", + "uv-normalize", + "uv-once-map", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-preview", + "uv-pypi-types", + "uv-python", + "uv-redacted", + "uv-requirements-txt", + "uv-small-str", + "uv-static", + "uv-torch", + "uv-types", + "uv-version", + "uv-warnings", + "uv-workspace", +] + +[[package]] +name = "uv-scripts" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9820ec52b9143b88d28dad95874bab64bd6949e4c43422fbca8bf45d1f0b7d81" +dependencies = [ + "fs-err", + "indoc", + "memchr", + "regex", + "serde", + "thiserror 2.0.12", + "toml 0.9.8", + "url", + "uv-configuration", + "uv-distribution-types", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-pypi-types", + "uv-redacted", + "uv-settings", + "uv-warnings", + "uv-workspace", +] + +[[package]] +name = "uv-settings" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc666f199ffdf945659332d811b31b208e895c202b36160586611060411cfd4d" +dependencies = [ + "clap", + "fs-err", + "schemars 1.0.4", + "serde", + "textwrap", + "thiserror 2.0.12", + "toml 0.9.8", + "tracing", + "url", + "uv-cache-info", + "uv-client", + "uv-configuration", + "uv-dirs", + "uv-distribution-types", + "uv-flags", + "uv-fs", + "uv-install-wheel", + "uv-macros", + "uv-normalize", + "uv-options-metadata", + "uv-pep508", + "uv-pypi-types", + "uv-python", + "uv-redacted", + "uv-resolver", + "uv-static", + "uv-torch", + "uv-warnings", + "uv-workspace", +] + +[[package]] +name = "uv-shell" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae67acc7f2a8e3efc5d041bfb2fea234146e83aa752e2624bceb8ed2b9f9d423" +dependencies = [ + "anyhow", + "fs-err", + "nix 0.30.1", + "same-file", + "tracing", + "uv-fs", + "uv-static", + "windows 0.59.0", + "windows-registry", +] + +[[package]] +name = "uv-small-str" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1612cbb6c2082da419387154902419208d90f8c306308d4af1ea28f8454b8a36" +dependencies = [ + "arcstr", + "rkyv", + "schemars 1.0.4", + "serde", +] + +[[package]] +name = "uv-state" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce38e2eebc52bb1e8c14a0466a3c7357c0ccbeea1bb2b66851ba367daba9732f" +dependencies = [ + "fs-err", + "tempfile", + "uv-dirs", +] + +[[package]] +name = "uv-static" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53cc89da9296f3c41452bec64905f02999b719407e0473ced7bcffa543e92b91" +dependencies = [ + "uv-macros", +] + +[[package]] +name = "uv-tool" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93ab727a1a0f3cb15ec1bcfaf4949c67b464718df439a339c5137aa8b430070" +dependencies = [ + "fs-err", + "pathdiff", + "serde", + "thiserror 2.0.12", + "toml 0.9.8", + "toml_edit 0.23.7", + "tracing", + "uv-cache", + "uv-dirs", + "uv-distribution-types", + "uv-fs", + "uv-install-wheel", + "uv-installer", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-preview", + "uv-pypi-types", + "uv-python", + "uv-settings", + "uv-state", + "uv-static", + "uv-virtualenv", +] + +[[package]] +name = "uv-torch" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4593f79340b796692e46cdc75c7b0886d4ed1678cf8e7a17d4c8f3939908b41b" +dependencies = [ + "clap", + "either", + "fs-err", + "schemars 1.0.4", + "serde", + "thiserror 2.0.12", + "tracing", + "url", + "uv-distribution-types", + "uv-normalize", + "uv-pep440", + "uv-platform-tags", + "uv-static", + "wmi", +] + +[[package]] +name = "uv-trampoline-builder" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebdfb3bee522cdeaeb4c3c12082f29d9c3c34f15f41b300eb296d05b69966fb2" +dependencies = [ + "fs-err", + "tempfile", + "thiserror 2.0.12", + "uv-fs", + "windows 0.59.0", + "zip", +] + +[[package]] +name = "uv-types" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34021ded45b5afff77c686502690fa2a312ce467d0215643daaaf68afb34416c" +dependencies = [ + "anyhow", + "dashmap", + "rustc-hash", + "thiserror 2.0.12", + "uv-cache", + "uv-configuration", + "uv-distribution-filename", + "uv-distribution-types", + "uv-git", + "uv-normalize", + "uv-once-map", + "uv-pep440", + "uv-pypi-types", + "uv-python", + "uv-redacted", + "uv-workspace", +] + +[[package]] +name = "uv-version" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bfb0a586b8801a71eeb66160c0cba335558f160dd7eccd33566f280104a559" + +[[package]] +name = "uv-virtualenv" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0b0ad6d9d0589303802472bb87ff7ef7a97f95ef34edd2c4db746b59c70538" +dependencies = [ + "console 0.16.1", + "fs-err", + "itertools 0.14.0", + "owo-colors", + "pathdiff", + "self-replace", + "thiserror 2.0.12", + "tracing", + "uv-console", + "uv-fs", + "uv-preview", + "uv-pypi-types", + "uv-python", + "uv-shell", + "uv-version", + "uv-warnings", +] + +[[package]] +name = "uv-warnings" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed824e37b4e4a233b83378ae2faf3e06bb906217a2d00a58d84a3c18383904c6" +dependencies = [ + "anstream", + "owo-colors", + "rustc-hash", +] + +[[package]] +name = "uv-workspace" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "865fa3c27a1dfe1739e49f34514f20be8ceb284494e74e74b43b0c0a2864e716" +dependencies = [ + "clap", + "fs-err", + "glob", + "itertools 0.14.0", + "owo-colors", + "rustc-hash", + "schemars 1.0.4", + "serde", + "thiserror 2.0.12", + "tokio", + "toml 0.9.8", + "toml_edit 0.23.7", + "tracing", + "uv-build-backend", + "uv-cache-key", + "uv-configuration", + "uv-distribution-types", + "uv-fs", + "uv-git-types", + "uv-macros", + "uv-normalize", + "uv-options-metadata", + "uv-pep440", + "uv-pep508", + "uv-pypi-types", + "uv-redacted", + "uv-static", + "uv-warnings", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" @@ -3996,8 +7479,22 @@ dependencies = [ "futures-util", "js-sys", "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmtimer" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" +dependencies = [ + "futures", + "js-sys", + "parking_lot", + "pin-utils", + "slab", + "wasm-bindgen", ] [[package]] @@ -4026,7 +7523,7 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaf4f3c0ba838e82b4e5ccc4157003fb8c324ee24c058470ffb82820becbde98" dependencies = [ - "core-foundation", + "core-foundation 0.10.1", "jni", "log", "ndk-context", @@ -4045,6 +7542,18 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "which" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" +dependencies = [ + "env_home", + "regex", + "rustix 1.0.8", + "winsafe", +] + [[package]] name = "winapi" version = "0.3.9" @@ -4076,17 +7585,130 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f919aee0a93304be7f62e8e5027811bbba96bcb1de84d6618be56e43f8a32a1" +dependencies = [ + "windows-core 0.59.0", + "windows-targets 0.53.2", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections 0.2.0", + "windows-core 0.61.2", + "windows-future 0.2.1", + "windows-link 0.1.3", + "windows-numerics 0.2.0", +] + +[[package]] +name = "windows" +version = "0.62.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9579d0e6970fd5250aa29aba5994052385ff55cf7b28a059e484bb79ea842e42" +dependencies = [ + "windows-collections 0.3.0", + "windows-core 0.62.0", + "windows-future 0.3.0", + "windows-link 0.2.1", + "windows-numerics 0.3.0", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-collections" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a90dd7a7b86859ec4cdf864658b311545ef19dbcf17a672b52ab7cefe80c336f" +dependencies = [ + "windows-core 0.62.0", +] + +[[package]] +name = "windows-core" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "810ce18ed2112484b0d4e15d022e5f598113e220c53e373fb31e67e21670c1ce" +dependencies = [ + "windows-implement 0.59.0", + "windows-interface", + "windows-result 0.3.4", + "windows-strings 0.3.1", + "windows-targets 0.53.2", +] + [[package]] name = "windows-core" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement", + "windows-implement 0.60.0", "windows-interface", - "windows-link", - "windows-result", - "windows-strings", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c" +dependencies = [ + "windows-implement 0.60.0", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading 0.1.0", +] + +[[package]] +name = "windows-future" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2194dee901458cb79e1148a4e9aac2b164cc95fa431891e7b296ff0b2f1d8a6" +dependencies = [ + "windows-core 0.62.0", + "windows-link 0.2.1", + "windows-threading 0.2.1", +] + +[[package]] +name = "windows-implement" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", ] [[package]] @@ -4117,13 +7739,68 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-numerics" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ce3498fe0aba81e62e477408383196b4b0363db5e0c27646f932676283b43d8" +dependencies = [ + "windows-core 0.62.0", + "windows-link 0.2.1", +] + +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + [[package]] name = "windows-result" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +dependencies = [ + "windows-link 0.1.3", ] [[package]] @@ -4132,7 +7809,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", ] [[package]] @@ -4180,6 +7866,15 @@ dependencies = [ "windows-targets 0.53.2", ] +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -4242,6 +7937,24 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -4424,13 +8137,19 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] +[[package]] +name = "winsafe" +version = "0.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" + [[package]] name = "wit-bindgen-rt" version = "0.39.0" @@ -4440,6 +8159,20 @@ dependencies = [ "bitflags 2.9.1", ] +[[package]] +name = "wmi" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d9189bc72f0e4d814d812216ec06636ce3ea5597ff5f1ff9f9f0e5ec781c027" +dependencies = [ + "futures", + "log", + "serde", + "thiserror 2.0.12", + "windows 0.61.3", + "windows-core 0.61.2", +] + [[package]] name = "writeable" version = "0.6.1" @@ -4456,6 +8189,21 @@ dependencies = [ "rustix 1.0.8", ] +[[package]] +name = "xml-rs" +version = "0.8.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" + +[[package]] +name = "xz2" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" +dependencies = [ + "lzma-sys", +] + [[package]] name = "yoke" version = "0.8.0" @@ -4480,6 +8228,62 @@ dependencies = [ "synstructure", ] +[[package]] +name = "zbus" +version = "5.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b622b18155f7a93d1cd2dc8c01d2d6a44e08fb9ebb7b3f9e6ed101488bad6c91" +dependencies = [ + "async-broadcast", + "async-recursion", + "async-trait", + "enumflags2", + "event-listener", + "futures-core", + "futures-lite", + "hex", + "nix 0.30.1", + "ordered-stream", + "serde", + "serde_repr", + "tokio", + "tracing", + "uds_windows", + "uuid", + "windows-sys 0.61.2", + "winnow", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cdb94821ca8a87ca9c298b5d1cbd80e2a8b67115d99f6e4551ac49e42b6a314" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.104", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" +dependencies = [ + "serde", + "static_assertions", + "winnow", + "zvariant", +] + [[package]] name = "zerocopy" version = "0.8.26" @@ -4559,3 +8363,110 @@ dependencies = [ "quote", "syn 2.0.104", ] + +[[package]] +name = "zip" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +dependencies = [ + "arbitrary", + "bzip2", + "crc32fast", + "crossbeam-utils", + "displaydoc", + "flate2", + "indexmap 2.12.1", + "lzma-rs", + "memchr", + "thiserror 2.0.12", + "xz2", + "zopfli", + "zstd", +] + +[[package]] +name = "zlib-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2" + +[[package]] +name = "zopfli" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edfc5ee405f504cd4984ecc6f14d02d55cfda60fa4b689434ef4102aae150cd7" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.16+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "zvariant" +version = "5.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c" +dependencies = [ + "endi", + "enumflags2", + "serde", + "winnow", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.104", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 2.0.104", + "winnow", +] diff --git a/Cargo.toml b/Cargo.toml index bd7b64f4..c6d7ab54 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,7 @@ resolver = "2" edition = "2021" version = "0.3.37" description = "Tower is the best way to host Python data apps in production" -rust-version = "1.81" +rust-version = "1.89" authors = ["Brad Heller "] license = "MIT" repository = "https://github.com/tower/tower-cli" diff --git a/crates/tower-cmd/Cargo.toml b/crates/tower-cmd/Cargo.toml index 701bf6e3..6b72df0e 100644 --- a/crates/tower-cmd/Cargo.toml +++ b/crates/tower-cmd/Cargo.toml @@ -31,7 +31,9 @@ tower-api = { workspace = true } tower-package = { workspace = true } tower-runtime = { workspace = true } tower-telemetry = { workspace = true } +tower-uv = { workspace = true } tower-version = { path = "../tower-version" } +dirs = { workspace = true } webbrowser = { workspace = true } rmcp = { version = "0.5.0", features = ["server", "transport-io", "schemars", "transport-sse-server", "transport-streamable-http-server"] } schemars = "1.0" diff --git a/crates/tower-cmd/src/doctor.rs b/crates/tower-cmd/src/doctor.rs new file mode 100644 index 00000000..1c112104 --- /dev/null +++ b/crates/tower-cmd/src/doctor.rs @@ -0,0 +1,125 @@ +use crate::output::write; +use crate::api; +use clap::Command; +use colored::Colorize; +use config::Config; + +pub fn doctor_cmd() -> Command { + Command::new("doctor") + .about("Check your Tower CLI installation and configuration") +} + +pub async fn do_doctor(config: Config) { + write(&format!("{}\n\n", "Running Tower doctor...".bold())); + + let mut all_ok = true; + + all_ok &= check_uv().await; + all_ok &= check_authentication(&config).await; + all_ok &= check_cli_version().await; + + write("\n"); + if all_ok { + write(&format!("{}\n", "All checks passed!".green().bold())); + } else { + write(&format!("{}\n", "Some checks failed. See above for details.".yellow().bold())); + } +} + +async fn check_uv() -> bool { + write("Checking UV... "); + + match tower_uv::Uv::new(None, false).await { + Ok(uv) => { + let version_output = tokio::process::Command::new(&uv.uv_path) + .arg("--version") + .output() + .await; + + match version_output { + Ok(cmd_output) => { + let version = String::from_utf8_lossy(&cmd_output.stdout).trim().to_string(); + write(&format!("{}\n", "OK".green())); + write(&format!(" Path: {}\n", uv.uv_path.display())); + write(&format!(" Version: {}\n", version)); + true + } + Err(e) => { + write(&format!("{}\n", "FAILED".red())); + write(&format!(" Path: {}\n", uv.uv_path.display())); + write(&format!(" Error getting version: {}\n", e)); + false + } + } + } + Err(e) => { + write(&format!("{}\n", "FAILED".red())); + write(&format!(" Error: {:?}\n", e)); + false + } + } +} + +async fn check_authentication(config: &Config) -> bool { + write("Checking authentication... "); + + match config::Session::from_config_dir() { + Ok(session) => { + let config_with_session = config.clone().with_session(session.clone()); + + match api::refresh_session(&config_with_session).await { + Ok(_) => { + write(&format!("{}\n", "OK".green())); + write(&format!(" Logged in as: {}\n", session.user.email)); + if let Some(team) = session.active_team { + write(&format!(" Active team: {}\n", team.name)); + } + true + } + Err(_) => { + write(&format!("{}\n", "EXPIRED".red())); + write(&format!(" Session for {} has expired.\n", session.user.email)); + write(" Run 'tower login' to re-authenticate.\n"); + false + } + } + } + Err(_) => { + write(&format!("{}\n", "NOT LOGGED IN".yellow())); + write(" Run 'tower login' to authenticate.\n"); + true + } + } +} + +async fn check_cli_version() -> bool { + write("Checking CLI version... "); + + let current = tower_version::current_version(); + + match tower_version::check_latest_version().await { + Ok(Some(latest)) => { + if current == latest { + write(&format!("{}\n", "OK".green())); + write(&format!(" Current: {} (latest)\n", current)); + } else { + write(&format!("{}\n", "UPDATE AVAILABLE".yellow())); + write(&format!(" Current: {}\n", current)); + write(&format!(" Latest: {}\n", latest)); + } + true + } + Ok(None) => { + write(&format!("{}\n", "OK".green())); + write(&format!(" Current: {}\n", current)); + write(" Could not check for updates.\n"); + true + } + Err(_) => { + write(&format!("{}\n", "OK".green())); + write(&format!(" Current: {}\n", current)); + write(" Could not check for updates (offline?).\n"); + true + } + } +} diff --git a/crates/tower-cmd/src/lib.rs b/crates/tower-cmd/src/lib.rs index 483f7c48..a84c2eb1 100644 --- a/crates/tower-cmd/src/lib.rs +++ b/crates/tower-cmd/src/lib.rs @@ -4,6 +4,7 @@ use config::{Config, Session}; pub mod api; mod apps; mod deploy; +mod doctor; mod environments; pub mod error; mod mcp; @@ -175,6 +176,7 @@ impl App { eprintln!("MCP server error: {}", e); std::process::exit(1); }), + Some(("doctor", _)) => doctor::do_doctor(config).await, _ => { cmd_clone.print_help().unwrap(); std::process::exit(2); @@ -222,4 +224,5 @@ fn root_cmd() -> Command { .subcommand(version::version_cmd()) .subcommand(teams::teams_cmd()) .subcommand(mcp::mcp_cmd()) + .subcommand(doctor::doctor_cmd()) } diff --git a/crates/tower-package/src/lib.rs b/crates/tower-package/src/lib.rs index cd4644c5..5c347fc8 100644 --- a/crates/tower-package/src/lib.rs +++ b/crates/tower-package/src/lib.rs @@ -637,7 +637,6 @@ pub async fn compute_sha256_file(file_path: &PathBuf) -> Result { #[cfg(test)] mod test { use super::*; - use std::collections::HashMap; use std::path::PathBuf; #[tokio::test] diff --git a/crates/tower-uv/Cargo.toml b/crates/tower-uv/Cargo.toml index b85e9d0c..b602efde 100644 --- a/crates/tower-uv/Cargo.toml +++ b/crates/tower-uv/Cargo.toml @@ -7,11 +7,5 @@ rust-version = { workspace = true } license = { workspace = true } [dependencies] -async-compression = { workspace = true } -async_zip = { workspace = true } -dirs = { workspace = true } -futures-lite = { workspace = true } -reqwest = { workspace = true } tokio = { workspace = true } -tokio-tar = { workspace = true } tower-telemetry = { workspace = true } diff --git a/crates/tower-uv/src/install.rs b/crates/tower-uv/src/install.rs deleted file mode 100644 index 3f0c7147..00000000 --- a/crates/tower-uv/src/install.rs +++ /dev/null @@ -1,388 +0,0 @@ -use std::env; -use std::path::PathBuf; -use std::sync::OnceLock; - -use async_compression::tokio::bufread::GzipDecoder; -use async_zip::tokio::read::seek::ZipFileReader; -use futures_lite::io::AsyncReadExt; -use tokio::{process::Command, sync::Mutex}; -use tokio_tar::Archive; - -use tower_telemetry::debug; - -// Copy the UV_VERSION locally to make this a bit more ergonomic. -const UV_VERSION: &str = crate::UV_VERSION; - -static GLOBAL_LOCK: OnceLock> = OnceLock::new(); - -fn get_global_lock() -> &'static Mutex<()> { - GLOBAL_LOCK.get_or_init(|| Mutex::new(())) -} - -#[derive(Debug)] -pub enum Error { - NotFound(String), - UnsupportedPlatform, - IoError(std::io::Error), - Other(String), -} - -impl From for Error { - fn from(err: std::io::Error) -> Self { - Error::IoError(err) - } -} - -impl From for Error { - fn from(err: String) -> Self { - Error::Other(err) - } -} - -pub fn get_default_uv_bin_dir() -> Result { - let dir = dirs::data_local_dir().ok_or(Error::UnsupportedPlatform)?; - Ok(dir.join("tower").join("bin")) -} - -#[derive(Debug)] -pub struct ArchiveSelector; - -impl ArchiveSelector { - /// Get the appropriate archive name for the current platform - pub async fn get_archive_name() -> Result { - let arch = env::consts::ARCH; - let os = env::consts::OS; - - match (arch, os) { - // macOS - ("aarch64", "macos") => Ok("uv-aarch64-apple-darwin.tar.gz".to_string()), - ("x86_64", "macos") => Ok("uv-x86_64-apple-darwin.tar.gz".to_string()), - - // Windows - ("aarch64", "windows") => Ok("uv-aarch64-pc-windows-msvc.zip".to_string()), - ("x86_64", "windows") => Ok("uv-x86_64-pc-windows-msvc.zip".to_string()), - ("x86", "windows") => Ok("uv-i686-pc-windows-msvc.zip".to_string()), - - // Linux - ("aarch64", "linux") => { - if Self::is_musl_target() { - Ok("uv-aarch64-unknown-linux-musl.tar.gz".to_string()) - } else if Self::check_glibc(2, 28).await { - Ok("uv-aarch64-unknown-linux-gnu.tar.gz".to_string()) - } else { - Ok("uv-aarch64-unknown-linux-musl.tar.gz".to_string()) - } - } - ("x86_64", "linux") => { - if Self::is_musl_target() { - Ok("uv-x86_64-unknown-linux-musl.tar.gz".to_string()) - } else if Self::check_glibc(2, 17).await { - Ok("uv-x86_64-unknown-linux-gnu.tar.gz".to_string()) - } else { - Ok("uv-x86_64-unknown-linux-musl.tar.gz".to_string()) - } - } - ("x86", "linux") => { - if Self::is_musl_target() { - Ok("uv-i686-unknown-linux-musl.tar.gz".to_string()) - } else if Self::check_glibc(2, 17).await { - Ok("uv-i686-unknown-linux-gnu.tar.gz".to_string()) - } else { - Ok("uv-i686-unknown-linux-musl.tar.gz".to_string()) - } - } - ("arm", "linux") => { - // ARM v6 - only musl available - Ok("uv-arm-unknown-linux-musleabihf.tar.gz".to_string()) - } - ("armv7", "linux") => { - if Self::is_musl_target() { - Ok("uv-armv7-unknown-linux-musleabihf.tar.gz".to_string()) - } else if Self::check_glibc(2, 17).await { - Ok("uv-armv7-unknown-linux-gnueabihf.tar.gz".to_string()) - } else { - Ok("uv-armv7-unknown-linux-musleabihf.tar.gz".to_string()) - } - } - ("powerpc64", "linux") => { - if Self::check_glibc(2, 17).await { - Ok("uv-powerpc64-unknown-linux-gnu.tar.gz".to_string()) - } else { - Err("PowerPC64 requires glibc 2.17 or newer".to_string()) - } - } - ("powerpc64le", "linux") => { - if Self::check_glibc(2, 17).await { - Ok("uv-powerpc64le-unknown-linux-gnu.tar.gz".to_string()) - } else { - Err("PowerPC64LE requires glibc 2.17 or newer".to_string()) - } - } - ("riscv64", "linux") => { - if Self::check_glibc(2, 31).await { - Ok("uv-riscv64gc-unknown-linux-gnu.tar.gz".to_string()) - } else { - Err("RISC-V 64 requires glibc 2.31 or newer".to_string()) - } - } - ("s390x", "linux") => { - if Self::check_glibc(2, 17).await { - Ok("uv-s390x-unknown-linux-gnu.tar.gz".to_string()) - } else { - Err("s390x requires glibc 2.17 or newer".to_string()) - } - } - - _ => Err(format!("Unsupported platform: {} {}", arch, os)), - } - } - - /// Check if the current target uses musl libc - fn is_musl_target() -> bool { - // Check if we're compiled with musl - cfg!(target_env = "musl") - } - - /// Check if glibc version meets minimum requirements - async fn check_glibc(major: u32, minor: u32) -> bool { - // Only check glibc on Linux with gnu env - if !cfg!(target_os = "linux") || cfg!(target_env = "musl") { - return false; - } - - // Try to get glibc version using ldd - if let Ok(output) = Command::new("ldd").arg("--version").output().await { - if let Ok(version_str) = String::from_utf8(output.stdout) { - return Self::parse_glibc_version(&version_str, major, minor); - } - } - - // Fallback: try to read from /lib/libc.so.6 - if let Ok(output) = Command::new("/lib/libc.so.6").output().await { - if let Ok(version_str) = String::from_utf8(output.stdout) { - return Self::parse_glibc_version(&version_str, major, minor); - } - } - - // If we can't determine the version, assume it's old - false - } - - /// Parse glibc version string and compare with required version - fn parse_glibc_version(version_str: &str, req_major: u32, req_minor: u32) -> bool { - // Look for version pattern like "2.17" or "2.31" - for line in version_str.lines() { - if let Some(version_part) = line.split_whitespace().find(|part| { - part.contains('.') && part.chars().next().unwrap_or('0').is_ascii_digit() - }) { - let version_clean = - version_part.trim_matches(|c: char| !c.is_ascii_digit() && c != '.'); - let parts: Vec<&str> = version_clean.split('.').collect(); - - if parts.len() >= 2 { - if let (Ok(major), Ok(minor)) = - (parts[0].parse::(), parts[1].parse::()) - { - return major > req_major || (major == req_major && minor >= req_minor); - } - } - } - } - false - } -} - -fn extract_package_name(archive: String) -> String { - // Remove .tar.gz or .zip extension - archive - .strip_suffix(".tar.gz") - .or(archive.strip_suffix(".zip")) - .unwrap_or(&archive) - .to_string() -} - -async fn download_uv_archive(path: &PathBuf, archive: String) -> Result { - debug!("Downloading UV archive: {}", archive); - let url = format!( - "https://github.com/astral-sh/uv/releases/download/{}/{}", - UV_VERSION, archive - ); - - // Create the directory if it doesn't exist - std::fs::create_dir_all(&path).map_err(Error::IoError)?; - - // Download the file - let response = reqwest::get(url) - .await - .map_err(|e| Error::Other(e.to_string()))?; - - let bytes = response - .bytes() - .await - .map_err(|e| Error::Other(e.to_string()))?; - - // Determine archive type from extension - if archive.ends_with(".tar.gz") { - let cursor = std::io::Cursor::new(bytes); - let tar = GzipDecoder::new(cursor); - - // Extract the tar.gz archive - Archive::new(tar).unpack(path).await?; - - let package_name = extract_package_name(archive.clone()); - Ok(path.join(package_name).join("uv")) - } else if archive.ends_with(".zip") { - // Write zip data to a temporary file since async-zip works with files - let temp_path = path.join("temp.zip"); - tokio::fs::write(&temp_path, bytes).await?; - - // Open the zip file using seek reader with compression support - let file = tokio::fs::File::open(&temp_path).await?; - let mut zip = ZipFileReader::with_tokio(file) - .await - .map_err(|e| Error::Other(format!("Failed to open zip file: {}", e)))?; - - let package_name = extract_package_name(archive.clone()); - let uv_path = "uv".to_string(); - let uv_exe_path = "uv.exe".to_string(); - - // Find the UV executable entry - let entries = zip.file().entries(); - let entry_index = entries - .iter() - .enumerate() - .find(|(_, entry)| { - let name = entry.filename().as_str().unwrap_or(""); - name == uv_path || name == uv_exe_path - }) - .map(|(index, _)| index) - .ok_or_else(|| Error::Other("UV executable not found in archive".to_string()))?; - - // Create the package directory - let target_dir = path.join(&package_name); - std::fs::create_dir_all(&target_dir)?; - - // Extract the file with proper error handling for compression - let filename = entries[entry_index] - .filename() - .as_str() - .unwrap_or("uv") - .to_string(); - let is_exe = filename.ends_with(".exe"); - let target_path = target_dir.join(if is_exe { "uv.exe" } else { "uv" }); - - let mut reader = zip.reader_with_entry(entry_index).await.map_err(|e| { - Error::Other(format!( - "Failed to create entry reader for {}: {}", - filename, e - )) - })?; - let mut file = tokio::fs::File::create(&target_path).await?; - - // Manually copy data since ZipEntryReader doesn't implement AsyncRead - let mut buffer = [0u8; 8192]; - let mut total_bytes = 0; - loop { - let bytes_read = reader - .read(&mut buffer) - .await - .map_err(|e| Error::Other(format!("Failed to read from zip entry: {}", e)))?; - if bytes_read == 0 { - break; - } - tokio::io::AsyncWriteExt::write_all(&mut file, &buffer[..bytes_read]) - .await - .map_err(|e| Error::Other(format!("Failed to write to output file: {}", e)))?; - total_bytes += bytes_read; - } - - debug!( - "Successfully extracted {} bytes to {:?}", - total_bytes, target_path - ); - - // Make the file executable on Unix systems - #[cfg(unix)] - { - use std::os::unix::fs::PermissionsExt; - let mut perms = std::fs::metadata(&target_path)?.permissions(); - perms.set_mode(0o755); - std::fs::set_permissions(&target_path, perms)?; - } - - // Clean up temporary zip file - tokio::fs::remove_file(temp_path).await?; - - Ok(target_path) - } else { - return Err(Error::Other(format!( - "Unsupported archive format: {}", - archive - ))); - } -} - -pub async fn download_uv_for_arch(path: &PathBuf) -> Result { - debug!("Starting download of UV for current architecture"); - let archive = ArchiveSelector::get_archive_name().await?; - let path = download_uv_archive(path, archive).await?; - debug!("Downloaded UV to: {:?}", path); - Ok(path) -} - -async fn find_uv_binary() -> Option { - if let Ok(default_path) = get_default_uv_bin_dir() { - // Check if the default path exists - if default_path.exists() { - let uv_path = default_path.join("uv"); - if uv_path.exists() { - return Some(uv_path); - } - } - } - - None -} - -pub async fn find_or_setup_uv() -> Result { - // We only allow setup in the process space at a given time. - let _guard = get_global_lock().lock().await; - - // If we get here, uv wasn't found in PATH, so let's download it - if let Some(path) = find_uv_binary().await { - debug!("UV binary found at {:?}", path); - Ok(path) - } else { - let path = get_default_uv_bin_dir()?; - debug!("UV binary not found in PATH, setting up UV at {:?}", path); - - // Create the directory if it doesn't exist - std::fs::create_dir_all(&path).map_err(Error::IoError)?; - - let parent = path - .parent() - .ok_or_else(|| Error::NotFound("Parent directory not found".to_string()))? - .to_path_buf(); - - // We download this code to the UV directory - let exe = download_uv_for_arch(&parent).await?; - - // Target is the UV binary we want. - let target = path.join("uv"); - - // Copy the `uv` binary into the default directory - tokio::fs::copy(&exe, &target).await?; - - #[cfg(unix)] - { - use std::os::unix::fs::PermissionsExt; - let mut perms = std::fs::metadata(&target)?.permissions(); - perms.set_mode(0o755); - std::fs::set_permissions(&target, perms)?; - } - - debug!("Copied UV binary from {:?} to {:?}", exe, target); - - Ok(target) - } -} diff --git a/crates/tower-uv/src/lib.rs b/crates/tower-uv/src/lib.rs index f625307f..f4c86b94 100644 --- a/crates/tower-uv/src/lib.rs +++ b/crates/tower-uv/src/lib.rs @@ -4,11 +4,6 @@ use std::process::Stdio; use tokio::process::{Child, Command}; use tower_telemetry::debug; -pub mod install; - -// UV_VERSION is the version of UV to download and install when setting up a local UV deployment. -pub const UV_VERSION: &str = "0.7.13"; - #[derive(Debug)] pub enum Error { IoError(std::io::Error), @@ -22,22 +17,10 @@ pub enum Error { impl From for Error { fn from(err: std::io::Error) -> Self { - // Convert std::fs::Error to your custom Error type Error::IoError(err) } } -impl From for Error { - fn from(err: install::Error) -> Self { - match err { - install::Error::NotFound(msg) => Error::NotFound(msg), - install::Error::UnsupportedPlatform => Error::UnsupportedPlatform, - install::Error::IoError(e) => Error::IoError(e), - install::Error::Other(msg) => Error::Other(msg), - } - } -} - fn normalize_env_vars(env_vars: &HashMap) -> HashMap { // we copy this locally so we can mutate the results. let mut env_vars = env_vars.clone(); @@ -68,27 +51,34 @@ fn normalize_env_vars(env_vars: &HashMap) -> HashMap Result<(), Error> { - let res = Command::new(&path) - .arg("--color") - .arg("never") - .arg("--no-progress") - .arg("--help") - .output() - .await; - - match res { - Ok(_) => Ok(()), - Err(e) => { - debug!("Testing UV failed: {:?}", e); - Err(Error::InvalidUv) - } +fn find_uv_wrapper() -> Result { + if let Ok(path) = std::env::var("CARGO_BIN_EXE_uv-wrapper") { + return Ok(PathBuf::from(path)); + } + + let current_exe = std::env::current_exe() + .map_err(|e| Error::Other(format!("Failed to get current executable path: {}", e)))?; + + let exe_dir = current_exe + .parent() + .ok_or_else(|| Error::Other("Failed to get executable directory".to_string()))?; + + let binary_name = if cfg!(windows) { "uv-wrapper.exe" } else { "uv-wrapper" }; + let uv_wrapper = exe_dir.join(binary_name); + + if uv_wrapper.exists() { + Ok(uv_wrapper) + } else { + Err(Error::NotFound(format!( + "uv-wrapper binary not found at {:?}", + uv_wrapper + ))) } } @@ -106,16 +96,13 @@ pub struct Uv { impl Uv { pub async fn new(cache_dir: Option, protected_mode: bool) -> Result { - match install::find_or_setup_uv().await { - Ok(uv_path) => { - test_uv_path(&uv_path).await?; - Ok(Uv { uv_path, cache_dir, protected_mode }) - } - Err(e) => { - debug!("Error setting up UV: {:?}", e); - Err(e.into()) - } - } + let uv_path = find_uv_wrapper()?; + debug!("Using uv-wrapper at: {:?}", uv_path); + Ok(Uv { + uv_path, + cache_dir, + protected_mode, + }) } pub async fn venv( @@ -241,7 +228,7 @@ impl Uv { .arg("--no-progress") .arg("run") .arg(program); - + #[cfg(unix)] { cmd.process_group(0); @@ -263,6 +250,6 @@ impl Uv { } pub async fn is_valid(&self) -> bool { - test_uv_path(&self.uv_path).await.is_ok() + self.uv_path.exists() } } diff --git a/crates/tower-uv/tests/install_test.rs b/crates/tower-uv/tests/install_test.rs deleted file mode 100644 index 1cb036d7..00000000 --- a/crates/tower-uv/tests/install_test.rs +++ /dev/null @@ -1,12 +0,0 @@ -use tower_uv::{install::get_default_uv_bin_dir, Uv}; - -#[tokio::test] -async fn test_installing_uv() { - // Ensure there is no `uv` in the directory that we will install it to by default. - let default_uv_bin_dir = get_default_uv_bin_dir().unwrap(); - let _ = tokio::fs::remove_dir_all(&default_uv_bin_dir).await; - - // Now if we instantiate a Uv instance, it should install the `uv` binary. - let uv = Uv::new(None, false).await.expect("Failed to create a Uv instance"); - assert!(uv.is_valid().await); -} diff --git a/crates/tower/Cargo.toml b/crates/tower/Cargo.toml index 751f1616..88f1a803 100644 --- a/crates/tower/Cargo.toml +++ b/crates/tower/Cargo.toml @@ -19,7 +19,12 @@ eula = false tokio = { workspace = true } tower-cmd = { workspace = true } tower-api = { workspace = true } +uv = "=0.9.15" [[bin]] name = "tower" path = "src/main.rs" + +[[bin]] +name = "uv-wrapper" +path = "src/uv-wrapper.rs" diff --git a/crates/tower/src/uv-wrapper.rs b/crates/tower/src/uv-wrapper.rs new file mode 100644 index 00000000..cbe20a92 --- /dev/null +++ b/crates/tower/src/uv-wrapper.rs @@ -0,0 +1,3 @@ +fn main() -> std::process::ExitCode { + unsafe { uv::main(std::env::args_os()) } +} diff --git a/flake.nix b/flake.nix index d3fdb424..9f52e0f9 100644 --- a/flake.nix +++ b/flake.nix @@ -14,8 +14,16 @@ }; }; - outputs = { self, nixpkgs, flake-utils, rust-overlay, naersk }: - flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" "aarch64-linux" ] (system: + outputs = + { + self, + nixpkgs, + flake-utils, + rust-overlay, + naersk, + }: + flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" "aarch64-linux" ] ( + system: let pkgs = import nixpkgs { inherit system; @@ -39,29 +47,39 @@ fi ''; - mkNfpmConfig = { arch, packager }: '' - name: tower - arch: ${arch} - platform: linux - version: $VERSION - ${if packager == "rpm" then "release: 1" else "section: utils\npriority: optional"} - maintainer: ${maintainer} - description: ${longDescription} - vendor: Tower Computing Inc. - homepage: "${homepage}" - license: MIT - - contents: - - src: package/usr/bin/tower - dst: /usr/bin/tower - file_info: - mode: 0755 - ''; + mkNfpmConfig = + { arch, packager }: + '' + name: tower + arch: ${arch} + platform: linux + version: $VERSION + ${if packager == "rpm" then "release: 1" else "section: utils\npriority: optional"} + maintainer: ${maintainer} + description: ${longDescription} + vendor: Tower Computing Inc. + homepage: "${homepage}" + license: MIT + + contents: + - src: package/usr/bin/tower + dst: /usr/bin/tower + file_info: + mode: 0755 + - src: package/usr/bin/uv-wrapper + dst: /usr/bin/uv-wrapper + file_info: + mode: 0755 + ''; commonNativeBuildInputs = with pkgs; [ pkg-config ]; - commonBuildInputs = with pkgs; [ openssl zlib ]; + commonBuildInputs = with pkgs; [ + openssl + zlib + ]; - isMuslTarget = target: target == "x86_64-unknown-linux-musl" || target == "aarch64-unknown-linux-musl"; + isMuslTarget = + target: target == "x86_64-unknown-linux-musl" || target == "aarch64-unknown-linux-musl"; rustToolchain = pkgs.rust-bin.stable.latest.default; @@ -73,7 +91,7 @@ tower = naersk-native.buildPackage { src = ./.; - + cargoBuildOptions = x: x; nativeBuildInputs = commonNativeBuildInputs; @@ -82,95 +100,112 @@ meta = with pkgs.lib; { inherit description; license = licenses.mit; - platforms = [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; + platforms = [ + "x86_64-linux" + "aarch64-darwin" + "x86_64-darwin" + ]; mainProgram = "tower"; }; }; - mkCrossTarget = target: let - crossSystemConfig = { - "x86_64-unknown-linux-musl" = "x86_64-unknown-linux-musl"; - "aarch64-unknown-linux-musl" = "aarch64-unknown-linux-musl"; - "aarch64-apple-darwin" = "aarch64-apple-darwin"; - }.${target}; - - crossPkgs = import nixpkgs { - inherit system; - crossSystem = { config = crossSystemConfig; }; - }; + mkCrossTarget = + target: + let + crossSystemConfig = + { + "x86_64-unknown-linux-musl" = "x86_64-unknown-linux-musl"; + "aarch64-unknown-linux-musl" = "aarch64-unknown-linux-musl"; + "aarch64-apple-darwin" = "aarch64-apple-darwin"; + } + .${target}; - crossRustToolchain = pkgs.rust-bin.stable.latest.default.override { - targets = [target]; - }; + crossPkgs = import nixpkgs { + inherit system; + crossSystem = { + config = crossSystemConfig; + }; + }; - naersk-cross = naersk.lib.${system}.override { - cargo = crossRustToolchain; - rustc = crossRustToolchain; - }; + crossRustToolchain = pkgs.rust-bin.stable.latest.default.override { + targets = [ target ]; + }; - in naersk-cross.buildPackage { - src = ./.; - - cargoBuildOptions = x: x; + naersk-cross = naersk.lib.${system}.override { + cargo = crossRustToolchain; + rustc = crossRustToolchain; + }; - CARGO_BUILD_TARGET = target; - CARGO_BUILD_RUSTFLAGS = if (isMuslTarget target) - then "-C target-feature=+crt-static" - else ""; + in + naersk-cross.buildPackage { + src = ./.; - nativeBuildInputs = commonNativeBuildInputs ++ pkgs.lib.optionals (isMuslTarget target) [ - crossPkgs.stdenv.cc - ]; + cargoBuildOptions = x: x; - buildInputs = with crossPkgs; commonBuildInputs; - - CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER = - if target == "x86_64-unknown-linux-musl" - then "${crossPkgs.stdenv.cc.targetPrefix}cc" - else null; - - CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER = - if target == "aarch64-unknown-linux-musl" - then "${crossPkgs.stdenv.cc.targetPrefix}cc" - else null; - - PKG_CONFIG_ALLOW_CROSS = "1"; - OPENSSL_NO_VENDOR = "1"; - OPENSSL_DIR = "${crossPkgs.openssl.dev}"; - OPENSSL_LIB_DIR = "${crossPkgs.openssl.out}/lib"; - OPENSSL_INCLUDE_DIR = "${crossPkgs.openssl.dev}/include"; - }; + CARGO_BUILD_TARGET = target; + CARGO_BUILD_RUSTFLAGS = if (isMuslTarget target) then "-C target-feature=+crt-static" else ""; + + nativeBuildInputs = + commonNativeBuildInputs + ++ pkgs.lib.optionals (isMuslTarget target) [ + crossPkgs.stdenv.cc + ]; + + buildInputs = with crossPkgs; commonBuildInputs; + + CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER = + if target == "x86_64-unknown-linux-musl" then "${crossPkgs.stdenv.cc.targetPrefix}cc" else null; + + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER = + if target == "aarch64-unknown-linux-musl" then "${crossPkgs.stdenv.cc.targetPrefix}cc" else null; + + PKG_CONFIG_ALLOW_CROSS = "1"; + OPENSSL_NO_VENDOR = "1"; + OPENSSL_DIR = "${crossPkgs.openssl.dev}"; + OPENSSL_LIB_DIR = "${crossPkgs.openssl.out}/lib"; + OPENSSL_INCLUDE_DIR = "${crossPkgs.openssl.dev}/include"; + }; tower-linux-x86 = mkCrossTarget "x86_64-unknown-linux-musl"; tower-linux-arm64 = mkCrossTarget "aarch64-unknown-linux-musl"; - tower-macos-arm = if system == "aarch64-darwin" then tower else mkCrossTarget "aarch64-apple-darwin"; + tower-macos-arm = + if system == "aarch64-darwin" then tower else mkCrossTarget "aarch64-apple-darwin"; - in { + in + { packages = { default = tower; tower = tower; tower-linux-x86 = tower-linux-x86; tower-linux-arm64 = tower-linux-arm64; tower-macos-arm = tower-macos-arm; - + tower-deb-x86 = pkgs.stdenv.mkDerivation { name = "tower-deb-amd64"; - nativeBuildInputs = with pkgs; [ nfpm python git ]; - + nativeBuildInputs = with pkgs; [ + nfpm + python + git + ]; + unpackPhase = "true"; - + buildPhase = '' ${getVersionScript} - + mkdir -p package/usr/bin cp ${tower-linux-x86}/bin/tower package/usr/bin/ - chmod 755 package/usr/bin/tower - + cp ${tower-linux-x86}/bin/uv-wrapper package/usr/bin/ + chmod 755 package/usr/bin/tower package/usr/bin/uv-wrapper + cat > nfpm.yaml << EOF - ${mkNfpmConfig { arch = "amd64"; packager = "deb"; }} + ${mkNfpmConfig { + arch = "amd64"; + packager = "deb"; + }} EOF ''; - + installPhase = '' mkdir -p $out nfpm package --config nfpm.yaml --packager deb --target $out/tower_''${VERSION}_amd64.deb @@ -179,47 +214,63 @@ tower-deb-arm64 = pkgs.stdenv.mkDerivation { name = "tower-deb-arm64"; - nativeBuildInputs = with pkgs; [ nfpm python git ]; - + nativeBuildInputs = with pkgs; [ + nfpm + python + git + ]; + unpackPhase = "true"; - + buildPhase = '' ${getVersionScript} - + mkdir -p package/usr/bin cp ${tower-linux-arm64}/bin/tower package/usr/bin/ - chmod 755 package/usr/bin/tower - + cp ${tower-linux-arm64}/bin/uv-wrapper package/usr/bin/ + chmod 755 package/usr/bin/tower package/usr/bin/uv-wrapper + cat > nfpm.yaml << EOF - ${mkNfpmConfig { arch = "arm64"; packager = "deb"; }} + ${mkNfpmConfig { + arch = "arm64"; + packager = "deb"; + }} EOF ''; - + installPhase = '' mkdir -p $out cat nfpm.yaml nfpm package --config nfpm.yaml --packager deb --target $out/tower_''${VERSION}_arm64.deb ''; }; - + tower-rpm-x86 = pkgs.stdenv.mkDerivation { name = "tower-rpm-x86_64"; - nativeBuildInputs = with pkgs; [ nfpm python git ]; - + nativeBuildInputs = with pkgs; [ + nfpm + python + git + ]; + unpackPhase = "true"; - + buildPhase = '' ${getVersionScript} - + mkdir -p package/usr/bin cp ${tower-linux-x86}/bin/tower package/usr/bin/ - chmod 755 package/usr/bin/tower - + cp ${tower-linux-x86}/bin/uv-wrapper package/usr/bin/ + chmod 755 package/usr/bin/tower package/usr/bin/uv-wrapper + cat > nfpm.yaml << EOF - ${mkNfpmConfig { arch = "x86_64"; packager = "rpm"; }} + ${mkNfpmConfig { + arch = "x86_64"; + packager = "rpm"; + }} EOF ''; - + installPhase = '' mkdir -p $out nfpm package --config nfpm.yaml --packager rpm --target $out/tower-''${VERSION}-1.x86_64.rpm @@ -228,22 +279,30 @@ tower-rpm-arm64 = pkgs.stdenv.mkDerivation { name = "tower-rpm-aarch64"; - nativeBuildInputs = with pkgs; [ nfpm python git ]; - + nativeBuildInputs = with pkgs; [ + nfpm + python + git + ]; + unpackPhase = "true"; - + buildPhase = '' ${getVersionScript} - + mkdir -p package/usr/bin cp ${tower-linux-arm64}/bin/tower package/usr/bin/ - chmod 755 package/usr/bin/tower - + cp ${tower-linux-arm64}/bin/uv-wrapper package/usr/bin/ + chmod 755 package/usr/bin/tower package/usr/bin/uv-wrapper + cat > nfpm.yaml << EOF - ${mkNfpmConfig { arch = "aarch64"; packager = "rpm"; }} + ${mkNfpmConfig { + arch = "aarch64"; + packager = "rpm"; + }} EOF ''; - + installPhase = '' mkdir -p $out nfpm package --config nfpm.yaml --packager rpm --target $out/tower-''${VERSION}-1.aarch64.rpm @@ -262,7 +321,7 @@ pkg-config openssl ]; - + buildInputs = commonBuildInputs; shellHook = '' diff --git a/rust-toolchain.toml b/rust-toolchain.toml index c95c9057..4f3e8c52 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "1.88" +channel = "1.89"