github hellobertrand/zxc v0.7.0
ZXC v0.7.0

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

Release Notes

This release brings first-class big-endian architecture support, a new machine-readable JSON output mode for the CLI, and targeted safety fixes, making ZXC more portable, scriptable, and robust across platforms.

Changes

Big-Endian Architecture Support

ZXC now correctly compresses and decompresses data on big-endian systems. This is a foundational portability milestone.

  • Endianness Detection: Compile-time detection with byte-swap macros for 16, 32, and 64-bit values integrated into all read/store functions.
  • Multi-Architecture CI: New multiarch.yml workflow with tiered architecture support via QEMU emulation:
    Tier 1: Core architectures
    Tier 2: Extended Linux architectures
    Tier 3: Experimental and old architectures
  • API Update: zxc_compress_bound and zxc_get_decompressed_size now return uint64_t instead of size_t to prevent overflow on platforms with smaller size_t.
  • Wrapper Updates: Rust and Python wrappers updated with correct type casts for the new return types.

JSON Output for CLI

The CLI now supports structured JSON output for seamless integration with scripts and pipelines.

  • New Flags: --json / -j produce machine-readable JSON for all info commands.
  • Supported Commands: list, benchmark, and test (integrity check) all emit JSON output.
  • Comprehensive Tests: New CLI test suite covering single/multiple files, valid/corrupt scenarios.

Bug Fixes & Safety

  • Fix Out-of-Bounds Read (#89): Added branchless bounds check in zxc_le_partial to prevent potential buffer overflow when n > sizeof(uint64_t). Resolves -Wstringop-overflow compiler warnings on GCC.
  • ClusterFuzzLite Compatibility: Workaround for Docker 29+ API incompatibility with ClusterFuzzLite v1 (temporary Docker downgrade in CI).

Full Changelog: v0.6.3...v0.7.0

Don't miss a new zxc release

NewReleases is sending notifications on new releases.