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 async feature)
  • Parallel compression - Rayon-based multi-threaded processing (optional parallel feature)
  • WebAssembly - Browser-compatible builds (optional wasm feature)
  • 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 cli feature)
  • 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