Initial release of zesven, a comprehensive pure Rust implementation of the 7z archive format with full read/write support, multiple compression codecs, encryption, and cross-platform compatibility including WebAssembly.
Features
Archive Operations
- Full read, write, and edit support for 7z archives
- Append, update, delete, and rename entries in existing archives
- Archive integrity testing with CRC validation
- Selective extraction with glob and regex patterns
Compression Codecs (11 total)
- LZMA/LZMA2 - Native implementation with parallel compression variant
- Deflate - Via flate2 with zlib-rs backend
- BZip2 - Full encode/decode support
- PPMd - Prediction by Partial Matching
- Zstd - Modern compression (optional feature)
- Brotli - Google's compression algorithm (optional feature)
- LZ4 - Fast compression (optional feature)
- LZ5/Lizard - Pure Rust implementations (always available)
- Fast-LZMA2 - Radix match-finder encoder (experimental)
BCJ Filters (10 total)
- Delta - Byte-level delta encoding
- x86 - 32-bit x86 filter
- BCJ2 - Complex 4-stream x86 filter
- ARM/ARM-T/ARM64 - ARM architecture filters
- PowerPC/SPARC/IA-64/RISC-V - Additional architecture support
Encryption
- AES-256-CBC with SHA-256 key derivation
- Header encryption - Encrypt filenames and metadata
- Configurable key derivation iteration count
Archive Features
- Solid archives - Read and write with configurable block sizes
- Multi-volume archives - Support for split archives (
.7z.001,.7z.002, etc.) - Self-extracting archives - Detection and handling for Windows PE, Linux ELF, macOS Mach-O stubs
- Archive recovery - Signature scanning and partial recovery from corrupted archives
- Random access - Direct entry access for non-solid archives
- Hardlink tracking - Preserve and restore hardlinks
- NTFS alternate streams - Support for Windows alternate data streams
- Unix ownership - Preserve UID/GID on Unix systems
APIs
- Synchronous API - Standard blocking operations
- Streaming API - Memory-bounded processing with
StreamingArchive - Async API - Tokio-based async operations (optional
asyncfeature) - Parallel compression - Rayon-based multi-threaded processing (optional
parallelfeature) - WebAssembly - Browser-compatible builds (optional
wasmfeature) - Progress callbacks - Track extraction and compression progress
Security
- Path traversal protection - Blocks
../, absolute paths, symlink escapes - Resource limits - Configurable header size, entry count, and unpacked size limits
- CRC verification - Automatic validation of all entries
- Zip bomb prevention - Compression ratio limits
CLI Tool
- Full-featured command-line interface (optional
clifeature) - Commands:
list,extract,create,test,info - Progress display with indicatif
- Interactive password prompt support
- Shell completion generation
Platform Support
- Linux - Full support (x86_64, aarch64)
- macOS - Full support (x86_64, aarch64)
- Windows - Full support (x86_64)
- WebAssembly - Browser and Node.js support
Documentation
- Comprehensive user manual at zesven.akinshin.dev
- Complete 7z format specification documentation
- Cookbook with common usage patterns
- API reference via docs.rs
Internal
- MSRV: Rust 1.85
- Dual-licensed under MIT and Apache-2.0
- Extensive test suite including property-based testing and fuzz targets
- CI with cross-platform testing and WASM validation