Download Latest Version mxarchiver-1.2.0.tar.xz (197.7 kB)
Email in envelope

Get an email when there's a new version of mxarchiver

Home
Name Modified Size InfoDownloads / Week
mxarchiver-1.2.0.tar.xz 2025-07-24 197.7 kB
mxarchiver-ubuntu2404-1.2.0-1.deb 2025-07-24 238.8 kB
mxarchiver-1.1.2.tar.xz 2025-06-08 194.3 kB
mxarchiver-ubuntu2404-1.1.2-1.deb 2025-06-08 232.0 kB
README.txt 2025-03-16 5.0 kB
mxarchiver-1.1.1.tar.xz 2025-03-16 192.6 kB
mxarchiver-ubuntu-1.1.1-1.deb 2025-03-16 228.2 kB
mxarchiver-1.1.0.tar.xz 2025-02-09 192.4 kB
mxarchiver-ubuntu-1.1.0-1.deb 2025-02-09 227.6 kB
mxarchiver-ubuntu-1.0.0-1.deb 2025-01-12 225.1 kB
mxarchiver-1.0.0.tar.xz 2025-01-12 191.7 kB
Totals: 11 Items   2.1 MB 4
##################################################################
##########################              ##########################
##########################  MXArchiver  ##########################
##########################              ##########################
##################################################################

Copyright (C) 2024,2025 Dr. Matthias Meixner <meixner@gmx-topmail.de>


Overview
========

MXArchiver is an archiver like tar or zip but tuned for fast file access and
efficient incremental backups.

The features in detail:

Linux support

   MXArchiver supports Unix file permissions, users, groups, symbolic links
   and hardlinks.

Fast access

   MXArchiver has a central directory of all contained files. Unlike tar this allows
   fast listing and extraction of individual files.

Efficient incremental backups

   MXArchiver combines two strategies for incremental backups: First it only adds
   files to incremental backups whose time stamp or other file attributes
   have changed. Second it calculates cryptographic hashes for blocks of
   data and only if the hashes has changed, the data is added to an
   incremental backup. This allows for efficient incremental backup of
   large files, that often receive small updates like e.g. disk images of
   virtual machines.

   Even though an incremental backup only contains updated files, it has
   the hashes of all files including the ones which were not modified.
   By this an archive has all information required to create another
   incremental backup just taking the information from one archive.
   This allows simple creation of several levels of incremental backups.

On the fly merging of incremental backups

   By default MXArchiver merges incremental backups on the fly for extraction. For
   this it stores the name of the parent backup in the archive and on
   extraction it looks for this backup in the same folder as the backup to be
   extracted. By this extraction of incremental backups is as simple as
   extracting a full backup.

Mountable archives

   Archives can be mounted for reading using the FUSE file system mxamount
   which comes as part of the MXArchiver package. When mounted any tool can be used
   to read or extract files from the archive.

zstd and xz compression

   MXArchiver provides zstd for fast compression and xz for high compression rates.
   Compression can operate in parallel both compressing different files in
   parallel and using parallel compression on a single file depending on
   support by the compressor library. xz normally supports parallel compression
   out of the box, zstd only if parallel support has been compiled in. Parallel
   compression of different files is always supported.

Skip compression

   Typically compressed files cannot be compressed a second time but at the same
   time trying to compress them takes a lot of time. Therefore, to speed up
   operation, these files can be excluded from compression.

Verify

   MXArchiver supports verify. This works like extracting the archive but instead
   of writing data to files, it compares the data that would be written with
   the data in the file system. In case of incremental archives these are
   merged automatically by default so that all data is compared, not only
   the data in the last incremental archive.


Installation
============

MXArchiver depends on RE2 (libre2-9), ZSTD (libzstd1), XZ (liblzma5) and (Lib-)FUSE3 (fuse3).
To compile MXArchiver make sure that the development packages of the relevant dependencies
have been installed. In addition it depends on Blake3 and SHA512-256. These come
in the contrib folder so that you do not need to install them separately.

To install to /usr just type:

   make
   sudo make install

This installs MXArchiver command line tool mxa and the FUSE file system mxamount.
To install to a different prefix and build root location, these can be passed as
make variables, e.g.:

   make install DESTDIR=buildroot PREFIX=/usr/local

To create a Debian package for installation use:

   make deb


Documentation
=============

Check the man pages for documentation of mxa and mxamount.


License
=======

Copyright (C) 2024,2025 Dr. Matthias Meixner <meixner@gmx-topmail.de>

MXArchiver is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

MXArchiver is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with MXArchiver.  If not, see <http://www.gnu.org/licenses/>.


NOTE: Files in the contrib folder are dependencies required to
build MXArchiver but they are not part of MXArchiver and come with
their own license.
Source: README.txt, updated 2025-03-16