mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-18 10:43:15 +00:00
a38743caf5
rustfs-zip has one workspace consumer, and it uses only
CompressionFormat::{from_extension, extension, get_decoder} and
ArchiveLimits. Remove the tar/zip extract, zip create, and in-memory
compress helpers together with the types and dependencies that only
served them. Trimming public API is semver-major once the stable tag is
cut, so it costs least now.
2.2 KiB
2.2 KiB
RustFS Zip - Archive Format Detection And Stream Decoding
Archive format detection and async stream decoders for RustFS object storage
📖 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 astgz,tbz2,txz, andtzstCompressionFormat::get_decoder()for async stream decoding ofgzip,bzip2,zlib,xz, andzstd, plus a pass-through reader for plaintarArchiveLimitswith the default entry count, entry size, total unpacked size, and path length guardrails
Current Boundaries
- ZIP has no stream decoder:
get_decoder()rejectsCompressionFormat::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
ArchiveLimitscarries 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.
