feat: complete zip compression module implementation

This commit is contained in:
overtrue
2025-05-25 13:14:38 +08:00
parent c6b3051c67
commit 5fff195295
5 changed files with 584 additions and 62 deletions
Generated
+114 -6
View File
@@ -215,6 +215,15 @@ dependencies = [
"serde_json",
]
[[package]]
name = "arbitrary"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
dependencies = [
"derive_arbitrary",
]
[[package]]
name = "arc-swap"
version = "1.7.1"
@@ -633,6 +642,20 @@ dependencies = [
"syn 2.0.100",
]
[[package]]
name = "async_zip"
version = "0.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b9f7252833d5ed4b00aa9604b563529dd5e11de9c23615de2dcdf91eb87b52"
dependencies = [
"crc32fast",
"futures-lite",
"pin-project",
"thiserror 1.0.69",
"tokio",
"tokio-util",
]
[[package]]
name = "atk"
version = "0.18.2"
@@ -2400,6 +2423,12 @@ dependencies = [
"rand 0.8.5",
]
[[package]]
name = "deflate64"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da692b8d1080ea3045efaab14434d40468c3d8657e42abddfffca87b428f4c1b"
[[package]]
name = "der"
version = "0.7.10"
@@ -2421,6 +2450,17 @@ dependencies = [
"serde",
]
[[package]]
name = "derive_arbitrary"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.100",
]
[[package]]
name = "derive_builder"
version = "0.20.2"
@@ -4939,6 +4979,16 @@ dependencies = [
"twox-hash",
]
[[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"
@@ -7305,6 +7355,7 @@ dependencies = [
"rustfs-event-notifier",
"rustfs-obs",
"rustfs-utils",
"rustfs-zip",
"rustls 0.23.27",
"s3s",
"serde",
@@ -7326,7 +7377,6 @@ dependencies = [
"tracing",
"transform-stream",
"uuid",
"zip",
]
[[package]]
@@ -7428,6 +7478,19 @@ dependencies = [
"tracing",
]
[[package]]
name = "rustfs-zip"
version = "0.0.1"
dependencies = [
"async-compression",
"async_zip",
"tokio",
"tokio-stream",
"tokio-tar",
"xz2",
"zip",
]
[[package]]
name = "rustix"
version = "0.38.44"
@@ -10511,6 +10574,20 @@ name = "zeroize"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
dependencies = [
"zeroize_derive",
]
[[package]]
name = "zeroize_derive"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.100",
]
[[package]]
name = "zerovec"
@@ -10536,13 +10613,44 @@ dependencies = [
[[package]]
name = "zip"
version = "0.0.1"
version = "2.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50"
dependencies = [
"async-compression",
"tokio",
"tokio-stream",
"tokio-tar",
"aes",
"arbitrary",
"bzip2",
"constant_time_eq",
"crc32fast",
"crossbeam-utils",
"deflate64",
"displaydoc",
"flate2",
"getrandom 0.3.2",
"hmac 0.12.1",
"indexmap 2.9.0",
"lzma-rs",
"memchr",
"pbkdf2",
"sha1 0.10.6",
"thiserror 2.0.12",
"time",
"xz2",
"zeroize",
"zopfli",
"zstd",
]
[[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]]