Implement VFS compression support (ZSTD)
- 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:
@@ -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,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user