Files
rustfs/crates/zip
Hauser 5498b3e5d5 chore(deps): refresh RustFS tokio tar dependency (#7907)
* chore(deps): refresh RustFS tokio tar dependency

Switch the astral-tokio-tar workspace alias to the released rustfs-tokio-tar 0.7.1 crate and remove the obsolete cargo-deny git source allowance.

Co-Authored-By: heihutu <heihutu@gmail.com>

Co-Authored-By: zhi22915 <qiuzgang@gmail.com>

* chore(deps): align AWS smithy dependency family

Upgrade the AWS SDK and smithy crates together while patching aws-smithy-json 0.63.0 for the aws-smithy-types 1.7.0 DocumentObject API used by aws-config 1.12.0.

Co-Authored-By: heihutu <heihutu@gmail.com>

Co-Authored-By: zhi22915 <qiuzgang@gmail.com>

* revert(deps): use official AWS smithy compatible set

Remove the local aws-smithy-json patch and roll the AWS smithy family back to the latest official combination that compiles with aws-config 1.12.0.

Co-Authored-By: heihutu <heihutu@gmail.com>

Co-Authored-By: zhi22915 <qiuzgang@gmail.com>

* docs(architecture): retire tokio tar cleanup entry

Remove the stale cleanup-register entry after switching back to the released rustfs-tokio-tar crate, leaving no unmatched compatibility marker for the architecture guard.

Co-Authored-By: heihutu <heihutu@gmail.com>

Co-Authored-By: zhi22915 <qiuzgang@gmail.com>

* ci: restore table workflow failure contract

Align the table functional workflow with the quick-check guard by letting suite failures stay red, generating PASS reports only from complete successful evidence, and preserving the shared backlog issue fallback for harness failures.

Co-Authored-By: heihutu <heihutu@gmail.com>

Co-Authored-By: zhi22915 <qiuzgang@gmail.com>

* fix(deps): expose rustfs tokio tar dependency name

Use the published rustfs-tokio-tar dependency key throughout the workspace while keeping source imports on the crate's tokio_tar lib target name.

Co-Authored-By: heihutu <heihutu@gmail.com>

Co-Authored-By: zhi22915 <qiuzgang@gmail.com>

---------

Co-authored-by: zhi22915 <qiuzgang@gmail.com>
2026-09-15 14:54:21 +08:00
..

RustFS

RustFS Zip - Archive Format Detection And Stream Decoding

Archive format detection and async stream decoders for RustFS object storage

CI 📖 Documentation · 🐛 Bug Reports · 💬 Discussions


📖 Overview

RustFS Zip provides the archive primitives used by the RustFS archive extract flow:

  • identify a compression format from an archive extension
  • wrap an async reader in the matching stream decoder
  • carry the shared default archive guardrails

Current Features

  • CompressionFormat::from_extension() for extension-based format detection, including tar-family suffixes such as tgz, tbz2, txz, and tzst
  • CompressionFormat::get_decoder() for async stream decoding of gzip, bzip2, zlib, xz, and zstd, plus a pass-through reader for plain tar
  • ArchiveLimits with the default entry count, entry size, total unpacked size, and path length guardrails

Current Boundaries

  • ZIP has no stream decoder: get_decoder() rejects CompressionFormat::Zip, because ZIP needs central-directory semantics that a forward-only stream cannot provide
  • This crate detects formats and hands back decoders; archive iteration, entry writing, and extraction to disk belong to the caller
  • ArchiveLimits carries the values only; enforcement and the resulting protocol error belong to the caller
  • Archive extraction safety policy remains the responsibility of the RustFS caller for object-store flows

📚 Documentation

For comprehensive documentation, examples, and usage guides, please visit the main RustFS repository.

📄 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.