Skip to content

Changelog

All notable changes to ZIGX are documented in this file.

[0.0.1] - Initial Release

Added

  • Format Version 1: Stable archive format with versioning

    • 128-byte header with magic bytes, flags, and checksums
    • SHA-256 payload hash
    • Support for signing and encryption flags (reserved for future)
  • Compression Version 1: Zstandard (zstd) algorithm

    • Industry-leading compression ratios via zstd.zig bindings
    • Levels 1-19 (fast to best compression)
    • Extremely fast decompression (~135 MB/s)
    • CRC32 checksums for integrity verification
    • Multiple compression levels: BEST, DEFAULT, FAST, STORE
  • Unified API

    • include option for files and directories
    • exclude option for pattern-based filtering
    • Function aliases: bundle(), unbundle(), verify(), list(), isValid()
  • Core Functions

    • getArchiveInfo(): Get comprehensive archive metadata
    • bundle() / compress(): Create archives
    • unbundle() / extract(): Extract archives
    • verify() / validate(): Validate archive integrity
    • list() / listFiles(): List archive contents
    • isValid() / isValidArchive(): Quick validity check
    • detectCorruption(): Detect corruption type
  • Exclude Patterns

    • Glob-style pattern matching (*.tmp, node_modules)
    • Directory pattern support
    • Wildcard prefix and suffix patterns
  • Example Application (examples/self_bundle.zig)

    • bundle command: Create archives
    • debundle command: Extract archives
    • info command: Display archive information
    • list command: List files in archive
    • compare command: Compare compression levels
    • help command: Show usage information
  • Build Integration

    • Single executable with subcommands
    • Shortcut build steps: zig build bundle, zig build debundle
    • Test runner integration
  • Documentation

    • VitePress documentation site
    • API reference
    • Usage guides and examples

Technical Details

Format Specification

SectionSizeDescription
Magic4 bytesZIGX
Version2 bytes0x0001
Flags4 bytesCompression type, signed, encrypted
MetadataVariableKey-value pairs
ChecksumsVariableFile hashes
PayloadVariableCompressed data

Compression Performance

Levelzstd LevelTypical RatioUse Case
BEST1919-25%Distribution
DEFAULT321-28%General use
FAST125-33%Development
STORE-100%+Pre-compressed

Compatibility

  • Zig 0.15.0 or later required
  • Cross-platform: Windows, macOS, Linux

Planned Features

  • Digital signature implementation
  • Encryption support
  • Streaming compression API
  • Progress callbacks
  • Delta compression
  • Multi-threaded compression
  • Archive merging
  • Partial extraction

Released under the Apache License 2.0.