github hellobertrand/zxc v0.6.0
ZXC v0.6.0

latest releases: v0.9.1, v0.9.0, v0.8.3...
one month ago

Release Notes

This release introduces a major evolution of the file format (v4) centered on robust data integrity with comprehensive block and global checksums. It significantly upgrades the user experience by adding an archive listing command (-l), a dedicated integrity check (-t), and a visual progress bar with modern unit formatting. Under the hood, the core engine has switched to Prefix Varint encoding for improved efficiency.

Breaking Changes

This release introduces Format Version 4, with a new 16-byte header, Prefix Varint encoding, and mandatory footer structures. Files compressed with v0.6.0 are NOT compatible with older versions, and v0.6.0 cannot decompress files created by previous versions. You must re-compress your data to migrate to this new format. This overhaul establishes a robust baseline, and maintaining format stability is now a primary goal moving forward.

Features

Performance & Compression

  • Compression Speedup: Major optimizations in the LZ77 match finder and lazy matching logic have yielded significant speed improvements:
    • Level 1-2: +40% faster compression speed.
    • Level 3-5: +20% faster compression speed.
  • Better Ratios: Improved compression density across the board due to refined match finding strategies and the switch to Prefix Varint encoding (replacing VByte).
  • Fast Paths: Implemented optimized read/write paths for the new Prefix Varint integer encoding.

New File Format and Core Engine

  • Format Version 4: A complete structural overhaul introducing a new 16-byte file header, optimized block headers, and a file footer for robust metadata storage.
  • Prefix Varint Encoding: Replaced the previous VByte encoding with Prefix Varint for length encoding, offering better performance characteristics.
  • EOF Block: Introduced an explicit End-Of-File block to handle stream termination more reliably.
  • Global Checksum: Verification is now built-in with a RapidHash-based global checksum stored in the file footer.
  • New Integrity Command: Added the -t (--test) flag to verify the integrity of an archive without writing decompressed output.

CLI & Usability

  • Archive Listing: Added the -l (--list) and -lv (--list --verbose) commands to inspect archive contents, compression ratios, and internal block details.
  • Interactive Progress Bar: Implemented a real-time progress bar for long operations, displaying throughput in MB/s to match modern system standards.
  • Extended API: New zxc_stream_compress_ex API allowing developers to hook into progress callbacks.
  • Comprehensive Testing: Added a full suite of functional tests and broadened benchmark coverage (including Brotli comparison).

Full Changelog: v0.5.1...v0.6.0

Don't miss a new zxc release

NewReleases is sending notifications on new releases.