Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

E[x]ploded zip file system in FUSE

Project description

xzip is a FUSE file system for deduplicating zip files which share zipped contents.

To install use:

$ pip install xzip

or

$ easy_install xzip

xzip provides three executables zipexplode, zipanalyze, and mount.xzip which will “explode” a zip, analyze a zip file, and mount exploded zips respectively.

The file structure for an exploded zip is the following:

$ zipexplode path/to/zip/name-of-zip.zip
$ tree .
.
├── data
│   ├── <sha1-data-file1>
│   ├── <sha1-data-file2>
│   ├── ...
│   └── <sha1-data-filen>
└── meta
    ├── name-of-zip.zip.dir
    ├── name-of-zip.zip.jump
    └── name-of-zip.zip.stream

The file structure would be mounted by:

$ mount.xzip . path/to/mount/point
$ ls path/to/mount/point
name-of-zip.zip

Data files may be shared between any number of exploded zips files, and the meta tuple (*.dir, *.jump, *.stream) describe the original zip file.

zipexplode accepts two options --directory and --depth to modify where it creates the data and meta directories and how many levels deep the data directory should be. zipexplode can explode multiple zip files at once, and additional help is provided with the --help option.

zipanalyze simply prints out the sha1 of different segments of the original zip file. This script was used to determine what could be deduplicated, and what needed to be stored per zip file. This executable is mainly of historical use.

mount.xzip will mount the directory structure described above, and needs to be supplied with matching directory and --depth arguments to when zipexplode was called. Additional arguments --debug, --foreground, and --single-threaded are passed to FUSE and control underlying functionality. For more information see the --help for mount.xzip. (mount.xzip also takes -o style options)

Note: At this time xzip is not zip64 safe

Project details


Release history Release notifications

This version
History Node

0.10

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
xzip-0.10.tar.gz (9.8 kB) Copy SHA256 hash SHA256 Source None Jul 28, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page