Implement VFS compression support (ZSTD)
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled

- Add VfsCompression and VfsCompressionConfig types
- Add compression module with Compressor:
  - compress/decompress methods
  - compress_file/decompress_file utilities
  - should_compress threshold check
  - extension detection (.zst, .lz4)
- Add zstd crate dependency
- LZ4 placeholder (future implementation)

Enables SMB transparent compression.

All 229 tests pass.
This commit is contained in:
Warren
2026-06-20 22:21:50 +08:00
parent 9c44bd5929
commit 70cc6d9921
3 changed files with 134 additions and 0 deletions

View File

@@ -1,3 +1,4 @@
pub mod compression;
pub mod local_fs;
pub mod open_flags;
pub mod s3_fs;
@@ -259,3 +260,25 @@ pub struct VfsQuotaUsage {
/// 是否超过硬限制
pub over_hard_limit: bool,
}
/// 压缩算法类型
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum VfsCompression {
/// 无压缩
None,
/// LZ4压缩快速
Lz4,
/// ZSTD压缩高压缩率
Zstd,
}
/// 压缩配置
#[derive(Debug, Clone)]
pub struct VfsCompressionConfig {
/// 压缩算法
pub algorithm: VfsCompression,
/// 压缩级别1-22 for ZSTD, 1-12 for LZ4
pub level: u32,
/// 最小压缩大小(字节),小于此大小不压缩
pub min_size: u64,
}