Skip to content

v0.3.0

Choose a tag to compare

@jLantxa jLantxa released this 06 May 09:12
Immutable release. Only release title and notes can be modified.
v0.3.0
1a3f79f

What's new

This release introduces a new, optimized restorer engine that significantly improves performance while minimizing I/O requests to the backend. The new restorer replaces the previous blob-sequential implementation, being more suitable for backends with high latency and/or metered requests like SFTP or S3.

Changes

  • Multi-platform Build System: Overhauled the build system to support static, cross-platform releases for Linux (x64/ARM), Windows, and macOS.
  • Self-contained binary: Link all dependencies statically for release
  • Redesigned Restorer: Implemented a new high-performance, pack-centric restoration engine with background prefetching, range-based downloads, and concurrent restoration to significantly improve I/O efficiency.
  • Improved Metadata Restoration: File and directory metadata are now restored in a separate bottom-up pass to ensure consistency.
  • Environment Variables: Added support for MAPACHE_REPOSITORY, MAPACHE_USERNAME, and MAPACHE_PASSWORD to simplify automation and scripting.
  • Enhanced CLI UI: Improved error and warning messages with clearer formatting and better cross-platform color support.
  • Added --exclude-file and --include-file to read include and exclude paths from file.
  • Return codes: Mapache can now return error codes. Experimental support added for the init, snapshot, restore, verify, clean, sync, forget and ls commands.

Fixes

  • Make sure that locks are always released under normal termination.
  • Update dependencies patching some vulnerabilities.
  • Security fixes:
    • Ensure files are never restored outside of the target directory.
    • Zeroize sensitive data (passwords, keys, etc.) after use.
    • Hardened FUSE permissions.
  • Stability and Safety:
    • Optimized memory usage during restoration by using a fixed-size buffer for file verification.
    • Hardened garbage collection and retention logic by replacing risky panics with structured error handling.
    • Fixed a bug in restore with --delete where some nodes were not correctly identified for deletion.

Full Changelog: v0.2.3...v0.3.0