Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
httpd: Update dependencies
Sebastian Martinez committed 8 months ago
commit d5cf0612d5ff7cadf5efdf912ad1fefb6667546d
parent 2727615
8 files changed +488 -178
modified radicle-httpd/Cargo.lock
@@ -59,18 +59,6 @@ dependencies = [
]

[[package]]
-
name = "ahash"
-
version = "0.8.11"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
-
dependencies = [
-
 "cfg-if",
-
 "once_cell",
-
 "version_check",
-
 "zerocopy",
-
]
-

-
[[package]]
name = "aho-corasick"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -166,17 +154,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16"

[[package]]
-
name = "async-trait"
-
version = "0.1.82"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
-
dependencies = [
-
 "proc-macro2",
-
 "quote",
-
 "syn 2.0.77",
-
]
-

-
[[package]]
name = "autocfg"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -184,13 +161,13 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"

[[package]]
name = "axum"
-
version = "0.7.5"
+
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
+
checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5"
dependencies = [
-
 "async-trait",
 "axum-core",
 "bytes",
+
 "form_urlencoded",
 "futures-util",
 "http",
 "http-body",
@@ -208,29 +185,28 @@ dependencies = [
 "serde_json",
 "serde_path_to_error",
 "serde_urlencoded",
-
 "sync_wrapper 1.0.1",
+
 "sync_wrapper",
 "tokio",
-
 "tower 0.4.13",
+
 "tower 0.5.2",
 "tower-layer",
 "tower-service",
]

[[package]]
name = "axum-core"
-
version = "0.4.3"
+
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3"
+
checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6"
dependencies = [
-
 "async-trait",
 "bytes",
-
 "futures-util",
+
 "futures-core",
 "http",
 "http-body",
 "http-body-util",
 "mime",
 "pin-project-lite",
 "rustversion",
-
 "sync_wrapper 0.1.2",
+
 "sync_wrapper",
 "tower-layer",
 "tower-service",
]
@@ -414,14 +390,14 @@ dependencies = [

[[package]]
name = "chrono"
-
version = "0.4.38"
+
version = "0.4.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+
checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
dependencies = [
 "android-tzdata",
 "iana-time-zone",
 "num-traits",
-
 "windows-targets 0.52.6",
+
 "windows-link",
]

[[package]]
@@ -670,7 +646,7 @@ dependencies = [
 "convert_case",
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
]

[[package]]
@@ -692,6 +668,17 @@ dependencies = [
]

[[package]]
+
name = "displaydoc"
+
version = "0.2.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.87",
+
]
+

+
[[package]]
name = "document-features"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -714,7 +701,7 @@ checksum = "bdfd533a2fc01178c738c99412ae1f7e1ad2cb37c2e14bfd87e9d4618171c825"
dependencies = [
 "ct-codecs",
 "ed25519",
-
 "getrandom",
+
 "getrandom 0.2.15",
]

[[package]]
@@ -836,6 +823,12 @@ 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 = "form_urlencoded"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -905,7 +898,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
 "cfg-if",
 "libc",
-
 "wasi",
+
 "wasi 0.11.0+wasi-snapshot-preview1",
+
]
+

+
[[package]]
+
name = "getrandom"
+
version = "0.3.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
+
dependencies = [
+
 "cfg-if",
+
 "libc",
+
 "r-efi",
+
 "wasi 0.14.2+wasi-0.2.4",
]

[[package]]
@@ -941,7 +946,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbaeb9672a55e9e32cb6d3ef781e7526b25ab97d499fae71615649340b143424"
dependencies = [
 "serde",
-
 "thiserror",
+
 "thiserror 1.0.63",
]

[[package]]
@@ -953,7 +958,7 @@ dependencies = [
 "git-ref-format-core",
 "proc-macro-error",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
]

[[package]]
@@ -985,9 +990,16 @@ name = "hashbrown"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+

+
[[package]]
+
name = "hashbrown"
+
version = "0.15.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
dependencies = [
-
 "ahash",
 "allocator-api2",
+
 "equivalent",
+
 "foldhash",
]

[[package]]
@@ -1053,9 +1065,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"

[[package]]
name = "hyper"
-
version = "1.4.1"
+
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
+
checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80"
dependencies = [
 "bytes",
 "futures-channel",
@@ -1084,6 +1096,8 @@ dependencies = [
 "hyper",
 "pin-project-lite",
 "tokio",
+
 "tower 0.4.13",
+
 "tower-service",
]

[[package]]
@@ -1110,13 +1124,110 @@ dependencies = [
]

[[package]]
+
name = "icu_collections"
+
version = "2.0.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47"
+
dependencies = [
+
 "displaydoc",
+
 "potential_utf",
+
 "yoke",
+
 "zerofrom",
+
 "zerovec",
+
]
+

+
[[package]]
+
name = "icu_locale_core"
+
version = "2.0.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a"
+
dependencies = [
+
 "displaydoc",
+
 "litemap",
+
 "tinystr",
+
 "writeable",
+
 "zerovec",
+
]
+

+
[[package]]
+
name = "icu_normalizer"
+
version = "2.0.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979"
+
dependencies = [
+
 "displaydoc",
+
 "icu_collections",
+
 "icu_normalizer_data",
+
 "icu_properties",
+
 "icu_provider",
+
 "smallvec",
+
 "zerovec",
+
]
+

+
[[package]]
+
name = "icu_normalizer_data"
+
version = "2.0.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3"
+

+
[[package]]
+
name = "icu_properties"
+
version = "2.0.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b"
+
dependencies = [
+
 "displaydoc",
+
 "icu_collections",
+
 "icu_locale_core",
+
 "icu_properties_data",
+
 "icu_provider",
+
 "potential_utf",
+
 "zerotrie",
+
 "zerovec",
+
]
+

+
[[package]]
+
name = "icu_properties_data"
+
version = "2.0.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632"
+

+
[[package]]
+
name = "icu_provider"
+
version = "2.0.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af"
+
dependencies = [
+
 "displaydoc",
+
 "icu_locale_core",
+
 "stable_deref_trait",
+
 "tinystr",
+
 "writeable",
+
 "yoke",
+
 "zerofrom",
+
 "zerotrie",
+
 "zerovec",
+
]
+

+
[[package]]
name = "idna"
-
version = "0.5.0"
+
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+
checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
dependencies = [
-
 "unicode-bidi",
-
 "unicode-normalization",
+
 "idna_adapter",
+
 "smallvec",
+
 "utf8_iter",
+
]
+

+
[[package]]
+
name = "idna_adapter"
+
version = "1.2.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
+
dependencies = [
+
 "icu_normalizer",
+
 "icu_properties",
]

[[package]]
@@ -1126,15 +1237,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
dependencies = [
 "equivalent",
-
 "hashbrown",
+
 "hashbrown 0.14.5",
 "serde",
]

[[package]]
name = "infer"
-
version = "0.16.0"
+
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847"
+
checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7"
dependencies = [
 "cfb",
]
@@ -1167,6 +1278,17 @@ dependencies = [
]

[[package]]
+
name = "io-uring"
+
version = "0.7.9"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4"
+
dependencies = [
+
 "bitflags 2.9.1",
+
 "cfg-if",
+
 "libc",
+
]
+

+
[[package]]
name = "itoa"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1210,9 +1332,9 @@ dependencies = [

[[package]]
name = "lexopt"
-
version = "0.3.0"
+
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "baff4b617f7df3d896f97fe922b64817f6cd9a756bb81d40f8883f2f66dcb401"
+
checksum = "9fa0e2a1fcbe2f6be6c42e342259976206b383122fc152e872795338b5a3f3a7"

[[package]]
name = "libc"
@@ -1274,6 +1396,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"

[[package]]
+
name = "litemap"
+
version = "0.8.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
+

+
[[package]]
name = "litrs"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1306,11 +1434,11 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"

[[package]]
name = "lru"
-
version = "0.12.4"
+
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904"
+
checksum = "86ea4e65087ff52f3862caff188d489f1fab49a0cb09e01b2e3f1a617b10aaed"
dependencies = [
-
 "hashbrown",
+
 "hashbrown 0.15.5",
]

[[package]]
@@ -1324,9 +1452,9 @@ dependencies = [

[[package]]
name = "matchit"
-
version = "0.7.3"
+
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
+
checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3"

[[package]]
name = "memchr"
@@ -1366,7 +1494,7 @@ checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [
 "libc",
 "log",
-
 "wasi",
+
 "wasi 0.11.0+wasi-snapshot-preview1",
 "windows-sys 0.48.0",
]

@@ -1379,7 +1507,7 @@ dependencies = [
 "hermit-abi",
 "libc",
 "log",
-
 "wasi",
+
 "wasi 0.11.0+wasi-snapshot-preview1",
 "windows-sys 0.52.0",
]

@@ -1413,6 +1541,15 @@ dependencies = [
]

[[package]]
+
name = "nonempty"
+
version = "0.12.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9737e026353e5cd0736f98eddae28665118eb6f6600902a7f50db585621fecb6"
+
dependencies = [
+
 "serde",
+
]
+

+
[[package]]
name = "nu-ansi-term"
version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1604,7 +1741,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
dependencies = [
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
]

[[package]]
@@ -1670,6 +1807,15 @@ dependencies = [
]

[[package]]
+
name = "potential_utf"
+
version = "0.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
+
dependencies = [
+
 "zerovec",
+
]
+

+
[[package]]
name = "powerfmt"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1686,9 +1832,9 @@ dependencies = [

[[package]]
name = "pretty_assertions"
-
version = "1.4.0"
+
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+
checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d"
dependencies = [
 "diff",
 "yansi",
@@ -1755,6 +1901,12 @@ dependencies = [
]

[[package]]
+
name = "r-efi"
+
version = "5.3.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
+

+
[[package]]
name = "radicle"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1773,7 +1925,7 @@ dependencies = [
 "localtime",
 "log",
 "multibase",
-
 "nonempty",
+
 "nonempty 0.9.0",
 "qcheck",
 "radicle-cob",
 "radicle-crypto",
@@ -1785,7 +1937,7 @@ dependencies = [
 "siphasher",
 "sqlite",
 "tempfile",
-
 "thiserror",
+
 "thiserror 1.0.63",
 "unicode-normalization",
 "winpipe",
]
@@ -1799,14 +1951,14 @@ dependencies = [
 "fastrand",
 "git2",
 "log",
-
 "nonempty",
+
 "nonempty 0.9.0",
 "radicle-crypto",
 "radicle-dag",
 "radicle-git-ext",
 "serde",
 "serde_json",
 "signature 2.2.0",
-
 "thiserror",
+
 "thiserror 1.0.63",
]

[[package]]
@@ -1827,7 +1979,7 @@ dependencies = [
 "signature 2.2.0",
 "sqlite",
 "ssh-key",
-
 "thiserror",
+
 "thiserror 1.0.63",
 "zeroize",
]

@@ -1851,7 +2003,7 @@ dependencies = [
 "percent-encoding",
 "radicle-std-ext",
 "serde",
-
 "thiserror",
+
 "thiserror 1.0.63",
]

[[package]]
@@ -1867,7 +2019,7 @@ dependencies = [
 "infer",
 "lexopt",
 "lru",
-
 "nonempty",
+
 "nonempty 0.12.0",
 "pretty_assertions",
 "radicle",
 "radicle-crypto",
@@ -1876,9 +2028,9 @@ dependencies = [
 "serde",
 "serde_json",
 "tempfile",
-
 "thiserror",
+
 "thiserror 2.0.14",
 "tokio",
-
 "tower 0.5.0",
+
 "tower 0.5.2",
 "tower-http",
 "tracing",
 "tracing-logfmt",
@@ -1902,16 +2054,16 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "216e9e1259d8c857cdb38b2f832fb117e8e26478f110b9a2690bca20b87ec9c5"
dependencies = [
-
 "thiserror",
+
 "thiserror 1.0.63",
 "winpipe",
 "zeroize",
]

[[package]]
name = "radicle-std-ext"
-
version = "0.1.0"
+
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "db20136bbc9ae63f3fec8e5a6c369f4902fac2244501b5dfc6d668e43475aaa4"
+
checksum = "5310e7a04506b6ce92dc9c47b26bd24c1c680937a3dcd13cd20847f89dbda32a"

[[package]]
name = "radicle-surf"
@@ -1924,12 +2076,12 @@ dependencies = [
 "flate2",
 "git2",
 "log",
-
 "nonempty",
+
 "nonempty 0.9.0",
 "radicle-git-ext",
 "radicle-std-ext",
 "serde",
 "tar",
-
 "thiserror",
+
 "thiserror 1.0.63",
 "url",
]

@@ -1947,7 +2099,7 @@ dependencies = [
 "libc",
 "radicle-signals",
 "shlex",
-
 "thiserror",
+
 "thiserror 1.0.63",
 "unicode-display-width",
 "unicode-segmentation",
 "zeroize",
@@ -1980,7 +2132,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
-
 "getrandom",
+
 "getrandom 0.2.15",
]

[[package]]
@@ -2139,7 +2291,7 @@ checksum = "be9665e92f9b596cf2b20a8c0f55126cfee3514307740a859f1b25bc929e4947"
dependencies = [
 "base64 0.22.1",
 "errno",
-
 "getrandom",
+
 "getrandom 0.2.15",
 "libc",
]

@@ -2171,7 +2323,7 @@ checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
dependencies = [
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
]

[[package]]
@@ -2311,6 +2463,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"

[[package]]
+
name = "slab"
+
version = "0.4.11"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
+

+
[[package]]
name = "smallvec"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2318,12 +2476,12 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"

[[package]]
name = "socket2"
-
version = "0.5.7"
+
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
+
checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807"
dependencies = [
 "libc",
-
 "windows-sys 0.52.0",
+
 "windows-sys 0.59.0",
]

[[package]]
@@ -2432,6 +2590,12 @@ dependencies = [
]

[[package]]
+
name = "stable_deref_trait"
+
version = "1.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+

+
[[package]]
name = "subtle"
version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2450,9 +2614,9 @@ dependencies = [

[[package]]
name = "syn"
-
version = "2.0.77"
+
version = "2.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
+
checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
dependencies = [
 "proc-macro2",
 "quote",
@@ -2467,15 +2631,20 @@ checksum = "2b115b4cc742d11625f50e0e48ab15baf6fa548c2ec33a8d4113711886316a4f"

[[package]]
name = "sync_wrapper"
-
version = "0.1.2"
+
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"

[[package]]
-
name = "sync_wrapper"
-
version = "1.0.1"
+
name = "synstructure"
+
version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
+
checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.87",
+
]

[[package]]
name = "tar"
@@ -2490,14 +2659,14 @@ dependencies = [

[[package]]
name = "tempfile"
-
version = "3.12.0"
+
version = "3.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
+
checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
dependencies = [
-
 "cfg-if",
 "fastrand",
+
 "getrandom 0.3.3",
 "once_cell",
-
 "rustix 0.38.35",
+
 "rustix 1.0.8",
 "windows-sys 0.59.0",
]

@@ -2507,7 +2676,16 @@ version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
dependencies = [
-
 "thiserror-impl",
+
 "thiserror-impl 1.0.63",
+
]
+

+
[[package]]
+
name = "thiserror"
+
version = "2.0.14"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e"
+
dependencies = [
+
 "thiserror-impl 2.0.14",
]

[[package]]
@@ -2518,7 +2696,18 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
dependencies = [
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
+
]
+

+
[[package]]
+
name = "thiserror-impl"
+
version = "2.0.14"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.87",
]

[[package]]
@@ -2563,6 +2752,16 @@ dependencies = [
]

[[package]]
+
name = "tinystr"
+
version = "0.8.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
+
dependencies = [
+
 "displaydoc",
+
 "zerovec",
+
]
+

+
[[package]]
name = "tinyvec"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2579,28 +2778,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"

[[package]]
name = "tokio"
-
version = "1.40.0"
+
version = "1.47.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
+
checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038"
dependencies = [
 "backtrace",
+
 "io-uring",
 "libc",
 "mio 1.0.2",
 "pin-project-lite",
+
 "slab",
 "socket2",
 "tokio-macros",
-
 "windows-sys 0.52.0",
+
 "windows-sys 0.59.0",
]

[[package]]
name = "tokio-macros"
-
version = "2.4.0"
+
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
+
checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
dependencies = [
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
]

[[package]]
@@ -2620,29 +2821,29 @@ dependencies = [

[[package]]
name = "tower"
-
version = "0.5.0"
+
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "36b837f86b25d7c0d7988f00a54e74739be6477f2aac6201b8f429a7569991b7"
+
checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
dependencies = [
 "futures-core",
 "futures-util",
 "pin-project-lite",
-
 "sync_wrapper 0.1.2",
+
 "sync_wrapper",
+
 "tokio",
 "tower-layer",
 "tower-service",
]

[[package]]
name = "tower-http"
-
version = "0.5.2"
+
version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5"
+
checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
dependencies = [
 "bitflags 2.9.1",
 "bytes",
 "http",
 "http-body",
-
 "http-body-util",
 "pin-project-lite",
 "tower-layer",
 "tower-service",
@@ -2663,9 +2864,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"

[[package]]
name = "tracing"
-
version = "0.1.40"
+
version = "0.1.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
dependencies = [
 "log",
 "pin-project-lite",
@@ -2675,20 +2876,20 @@ dependencies = [

[[package]]
name = "tracing-attributes"
-
version = "0.1.27"
+
version = "0.1.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+
checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
dependencies = [
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
]

[[package]]
name = "tracing-core"
-
version = "0.1.32"
+
version = "0.1.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+
checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
dependencies = [
 "once_cell",
 "valuable",
@@ -2708,9 +2909,9 @@ dependencies = [

[[package]]
name = "tracing-subscriber"
-
version = "0.3.18"
+
version = "0.3.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+
checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
dependencies = [
 "matchers",
 "nu-ansi-term",
@@ -2741,12 +2942,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"

[[package]]
-
name = "unicode-bidi"
-
version = "0.3.15"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
-

-
[[package]]
name = "unicode-display-width"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2794,9 +2989,9 @@ dependencies = [

[[package]]
name = "url"
-
version = "2.5.2"
+
version = "2.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
+
checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
dependencies = [
 "form_urlencoded",
 "idna",
@@ -2805,6 +3000,12 @@ dependencies = [
]

[[package]]
+
name = "utf8_iter"
+
version = "1.0.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
+

+
[[package]]
name = "uuid"
version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2844,6 +3045,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"

[[package]]
+
name = "wasi"
+
version = "0.14.2+wasi-0.2.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
+
dependencies = [
+
 "wit-bindgen-rt",
+
]
+

+
[[package]]
name = "wasm-bindgen"
version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2865,7 +3075,7 @@ dependencies = [
 "once_cell",
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
 "wasm-bindgen-shared",
]

@@ -2887,7 +3097,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
dependencies = [
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
 "wasm-bindgen-backend",
 "wasm-bindgen-shared",
]
@@ -2960,7 +3170,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
dependencies = [
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
]

[[package]]
@@ -2971,10 +3181,16 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
dependencies = [
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
]

[[package]]
+
name = "windows-link"
+
version = "0.1.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
+

+
[[package]]
name = "windows-result"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3155,6 +3371,21 @@ dependencies = [
]

[[package]]
+
name = "wit-bindgen-rt"
+
version = "0.39.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
+
dependencies = [
+
 "bitflags 2.9.1",
+
]
+

+
[[package]]
+
name = "writeable"
+
version = "0.6.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
+

+
[[package]]
name = "xattr"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3167,9 +3398,33 @@ dependencies = [

[[package]]
name = "yansi"
-
version = "0.5.1"
+
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+
checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
+

+
[[package]]
+
name = "yoke"
+
version = "0.8.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
+
dependencies = [
+
 "serde",
+
 "stable_deref_trait",
+
 "yoke-derive",
+
 "zerofrom",
+
]
+

+
[[package]]
+
name = "yoke-derive"
+
version = "0.8.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.87",
+
 "synstructure",
+
]

[[package]]
name = "zerocopy"
@@ -3189,7 +3444,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
 "proc-macro2",
 "quote",
-
 "syn 2.0.77",
+
 "syn 2.0.87",
+
]
+

+
[[package]]
+
name = "zerofrom"
+
version = "0.1.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
+
dependencies = [
+
 "zerofrom-derive",
+
]
+

+
[[package]]
+
name = "zerofrom-derive"
+
version = "0.1.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.87",
+
 "synstructure",
]

[[package]]
@@ -3197,3 +3473,36 @@ name = "zeroize"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
+

+
[[package]]
+
name = "zerotrie"
+
version = "0.2.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595"
+
dependencies = [
+
 "displaydoc",
+
 "yoke",
+
 "zerofrom",
+
]
+

+
[[package]]
+
name = "zerovec"
+
version = "0.11.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b"
+
dependencies = [
+
 "yoke",
+
 "zerofrom",
+
 "zerovec-derive",
+
]
+

+
[[package]]
+
name = "zerovec-derive"
+
version = "0.11.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.87",
+
]
modified radicle-httpd/Cargo.toml
@@ -22,31 +22,31 @@ path = "src/main.rs"

[dependencies]
anyhow = { version = "1" }
-
axum = { version = "0.7.5", default-features = false, features = ["json", "query", "tokio", "http1"] }
+
axum = { version = "0.8.4", default-features = false, features = ["json", "query", "tokio", "http1"] }
base64 = { version = "0.22.1" }
-
chrono = { version = "0.4.38", default-features = false, features = ["clock"] }
+
chrono = { version = "0.4.41", default-features = false, features = ["clock"] }
flate2 = { version = "1" }
-
hyper = { version = "1.4", default-features = false }
-
infer = { version = "0.16.0" }
-
lexopt = { version = "0.3.0" }
-
lru = { version = "0.12.4" }
-
nonempty = { version = "0.9.0", features = ["serialize"] }
+
hyper = { version = "1.6.0", default-features = false }
+
infer = { version = "0.19.0" }
+
lexopt = { version = "0.3.1" }
+
lru = { version = "0.16.0" }
+
nonempty = { version = "0.12.0", features = ["serialize"] }
radicle = { version = "0.18.0" }
radicle-surf = { version = "0.22.0", default-features = false, features = ["serde"] }
radicle-term = { version = "0.14.0", default-features = false }
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["preserve_order"] }
-
thiserror = { version = "1" }
-
tokio = { version = "1.40", default-features = false, features = ["macros", "rt-multi-thread"] }
-
tower-http = { version = "0.5.2", default-features = false, features = ["trace", "cors", "set-header"] }
-
tracing = { version = "0.1.40", default-features = false, features = ["std", "log"] }
+
thiserror = { version = "2" }
+
tokio = { version = "1.47.1", default-features = false, features = ["macros", "rt-multi-thread"] }
+
tower-http = { version = "0.6.6", default-features = false, features = ["trace", "cors", "set-header"] }
+
tracing = { version = "0.1.41", default-features = false, features = ["std", "log"] }
tracing-logfmt = { version = "0.3.5", optional = true }
-
tracing-subscriber = { version = "0.3.18", default-features = false, features = ["std", "ansi", "fmt"] }
+
tracing-subscriber = { version = "0.3.19", default-features = false, features = ["std", "ansi", "fmt"] }

[dev-dependencies]
-
hyper = { version = "1.4", default-features = false, features = ["client"] }
-
pretty_assertions = { version = "1.3.0" }
+
hyper = { version = "1.6", default-features = false, features = ["client"] }
+
pretty_assertions = { version = "1.4.1" }
radicle = { version = "0.18.0", features = ["test"] }
radicle-crypto = { version = "0.13.0", features = ["test"] }
-
tempfile = { version = "3.3.0" }
-
tower = { version = "0.5.0", features = ["util"] }
+
tempfile = { version = "3.20.0" }
+
tower = { version = "0.5.2", features = ["util"] }
modified radicle-httpd/src/api/v1/delegates.rs
@@ -13,7 +13,7 @@ use crate::axum_extra::{Path, Query};

pub fn router(ctx: Context) -> Router {
    Router::new()
-
        .route("/delegates/:did/repos", get(delegates_repos_handler))
+
        .route("/delegates/{did}/repos", get(delegates_repos_handler))
        .with_state(ctx)
}

modified radicle-httpd/src/api/v1/node.rs
@@ -21,9 +21,12 @@ pub fn router(ctx: Context) -> Router {
    Router::new()
        .route("/node", get(node_handler))
        .route("/node/policies/repos", get(node_policies_repos_handler))
-
        .route("/node/policies/repos/:rid", get(node_policies_repo_handler))
-
        .route("/nodes/:nid", get(nodes_handler))
-
        .route("/nodes/:nid/inventory", get(nodes_inventory_handler))
+
        .route(
+
            "/node/policies/repos/{rid}",
+
            get(node_policies_repo_handler),
+
        )
+
        .route("/nodes/{nid}", get(nodes_handler))
+
        .route("/nodes/{nid}/inventory", get(nodes_inventory_handler))
        .with_state(ctx)
}

modified radicle-httpd/src/api/v1/repos.rs
@@ -29,22 +29,22 @@ pub fn router(ctx: Context) -> Router {
    Router::new()
        .route("/repos", get(repo_root_handler))
        .route("/repos/search", get(repo_search_handler))
-
        .route("/repos/:rid", get(repo_handler))
-
        .route("/repos/:rid/commits", get(history_handler))
-
        .route("/repos/:rid/commits/:sha", get(commit_handler))
-
        .route("/repos/:rid/diff/:base/:oid", get(diff_handler))
-
        .route("/repos/:rid/activity", get(activity_handler))
-
        .route("/repos/:rid/tree/:sha/", get(tree_handler_root))
-
        .route("/repos/:rid/tree/:sha/*path", get(tree_handler))
-
        .route("/repos/:rid/stats/tree/:sha", get(stats_tree_handler))
-
        .route("/repos/:rid/remotes", get(remotes_handler))
-
        .route("/repos/:rid/remotes/:peer", get(remote_handler))
-
        .route("/repos/:rid/blob/:sha/*path", get(blob_handler))
-
        .route("/repos/:rid/readme/:sha", get(readme_handler))
-
        .route("/repos/:rid/issues", get(issues_handler))
-
        .route("/repos/:rid/issues/:id", get(issue_handler))
-
        .route("/repos/:rid/patches", get(patches_handler))
-
        .route("/repos/:rid/patches/:id", get(patch_handler))
+
        .route("/repos/{rid}", get(repo_handler))
+
        .route("/repos/{rid}/commits", get(history_handler))
+
        .route("/repos/{rid}/commits/{sha}", get(commit_handler))
+
        .route("/repos/{rid}/diff/{base}/{oid}", get(diff_handler))
+
        .route("/repos/{rid}/activity", get(activity_handler))
+
        .route("/repos/{rid}/tree/{sha}/", get(tree_handler_root))
+
        .route("/repos/{rid}/tree/{sha}/{*path}", get(tree_handler))
+
        .route("/repos/{rid}/stats/tree/{sha}", get(stats_tree_handler))
+
        .route("/repos/{rid}/remotes", get(remotes_handler))
+
        .route("/repos/{rid}/remotes/{peer}", get(remote_handler))
+
        .route("/repos/{rid}/blob/{sha}/{*path}", get(blob_handler))
+
        .route("/repos/{rid}/readme/{sha}", get(readme_handler))
+
        .route("/repos/{rid}/issues", get(issues_handler))
+
        .route("/repos/{rid}/issues/{id}", get(issue_handler))
+
        .route("/repos/{rid}/patches", get(patches_handler))
+
        .route("/repos/{rid}/patches/{id}", get(patch_handler))
        .with_state(ctx)
        .layer(DefaultBodyLimit::max(MAX_BODY_LIMIT))
}
modified radicle-httpd/src/axum_extra.rs
@@ -4,14 +4,13 @@ use axum::extract::FromRequestParts;
use axum::http::request::Parts;
use axum::http::{header, StatusCode};
use axum::response::IntoResponse;
-
use axum::{async_trait, Json};
+
use axum::Json;

use serde::de::DeserializeOwned;
use serde::Serialize;

pub struct Path<T>(pub T);

-
#[async_trait]
impl<S, T> FromRequestParts<S> for Path<T>
where
    T: DeserializeOwned + Send,
@@ -53,7 +52,6 @@ where
#[derive(Default)]
pub struct Query<T>(pub T);

-
#[async_trait]
impl<S, T> FromRequestParts<S> for Query<T>
where
    T: DeserializeOwned + Send,
modified radicle-httpd/src/git.rs
@@ -24,7 +24,7 @@ use crate::error::GitError as Error;

pub fn router(profile: Arc<Profile>, aliases: HashMap<String, RepoId>) -> Router {
    Router::new()
-
        .route("/:rid/*request", any(git_handler))
+
        .route("/{rid}/{*request}", any(git_handler))
        .with_state((profile, aliases))
}

modified radicle-httpd/src/raw.rs
@@ -26,11 +26,11 @@ const ARCHIVE_SUFFIX: &str = ".tar.gz";

pub fn router(profile: Arc<Profile>) -> Router {
    Router::new()
-
        .route("/:rid/:sha", get(commit_handler))
-
        .route("/:rid/:sha/*path", get(file_by_commit_handler))
-
        .route("/:rid/head/*path", get(file_by_canonical_head_handler))
-
        .route("/:rid/archive/*refname", get(archive_by_refname_handler))
-
        .route("/:rid/blobs/:oid", get(file_by_oid_handler))
+
        .route("/{rid}/{sha}", get(commit_handler))
+
        .route("/{rid}/{sha}/{*path}", get(file_by_commit_handler))
+
        .route("/{rid}/head/{*path}", get(file_by_canonical_head_handler))
+
        .route("/{rid}/archive/{*refname}", get(archive_by_refname_handler))
+
        .route("/{rid}/blobs/{oid}", get(file_by_oid_handler))
        .with_state(profile)
}