feat(webdav): add WebDAV protocol gateway (#2158)

Signed-off-by: yxrxy <1532529704@qq.com>
Co-authored-by: houseme <housemecn@gmail.com>
Co-authored-by: 马登山 <Cxymds@qq.com>
Co-authored-by: heihutu <30542132+heihutu@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: 安正超 <anzhengchao@gmail.com>
This commit is contained in:
yxrxy
2026-03-14 23:06:53 +08:00
committed by GitHub
parent f66a90c1b2
commit d3cff7d033
21 changed files with 2265 additions and 8 deletions
Generated
+113
View File
@@ -2855,6 +2855,38 @@ dependencies = [
"sqlparser",
]
[[package]]
name = "dav-server"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88e9e4e7a3546a5b348518694e9f3ed5cf3fc8856e50141c197f54d79b5714a8"
dependencies = [
"bytes",
"chrono",
"derive-where",
"dyn-clone",
"futures-channel",
"futures-util",
"headers",
"htmlescape",
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"libc",
"log",
"lru",
"mime_guess",
"parking_lot",
"percent-encoding",
"pin-project-lite",
"reflink-copy",
"tokio",
"url",
"uuid",
"xml-rs",
"xmltree",
]
[[package]]
name = "debugid"
version = "0.8.0"
@@ -2926,6 +2958,17 @@ dependencies = [
"serde_core",
]
[[package]]
name = "derive-where"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]]
name = "derive_builder"
version = "0.12.0"
@@ -4020,6 +4063,30 @@ dependencies = [
"serde_core",
]
[[package]]
name = "headers"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb"
dependencies = [
"base64 0.22.1",
"bytes",
"headers-core",
"http 1.4.0",
"httpdate",
"mime",
"sha1 0.10.6",
]
[[package]]
name = "headers-core"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4"
dependencies = [
"http 1.4.0",
]
[[package]]
name = "heapless"
version = "0.8.0"
@@ -4100,6 +4167,12 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "htmlescape"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163"
[[package]]
name = "http"
version = "0.2.12"
@@ -6815,6 +6888,18 @@ dependencies = [
"syn 2.0.117",
]
[[package]]
name = "reflink-copy"
version = "0.1.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13362233b147e57674c37b802d216b7c5e3dcccbed8967c84f0d8d223868ae27"
dependencies = [
"cfg-if",
"libc",
"rustix 1.1.4",
"windows",
]
[[package]]
name = "regex"
version = "1.12.3"
@@ -7745,6 +7830,7 @@ dependencies = [
"axum",
"base64 0.22.1",
"bytes",
"dav-server",
"futures",
"futures-util",
"hex",
@@ -7752,6 +7838,8 @@ dependencies = [
"http 1.4.0",
"http-body 1.0.1",
"http-body-util",
"hyper",
"hyper-util",
"libunftp",
"md5",
"percent-encoding",
@@ -7773,6 +7861,7 @@ dependencies = [
"thiserror 2.0.18",
"time",
"tokio",
"tokio-rustls",
"tokio-util",
"tower",
"tracing",
@@ -10612,12 +10701,36 @@ dependencies = [
"rustix 1.1.4",
]
[[package]]
name = "xml"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8aa498d22c9bbaf482329839bc5620c46be275a19a812e9a22a2b07529a642a"
[[package]]
name = "xml-rs"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3a56132a0d6ecbe77352edc10232f788fc4ceefefff4cab784a98e0e16b6b51"
dependencies = [
"xml",
]
[[package]]
name = "xmlparser"
version = "0.13.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
[[package]]
name = "xmltree"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cbc04313cab124e498ab1724e739720807b6dc405b9ed0edc5860164d2e4ff70"
dependencies = [
"xml",
]
[[package]]
name = "xxhash-rust"
version = "0.8.15"