Skip to content
This repository has been archived by the owner on Mar 16, 2023. It is now read-only.

fuse-7z is a FUSE file system that uses the p7zip library

License

Notifications You must be signed in to change notification settings

liquidinvestigations/fuse-7z-ng

 
 

Repository files navigation

fork of fuse-7z-ng
==================

- copy code directly into this repo
  - lib7zip: https://github.com/stonewell/lib7zip
  - p7zip: https://github.com/btolab/p7zip
  - concat-fuse: https://gitlab.com/concat-fuse/concat-fuse
- include fixes from kedazo#7
- add build.sh script that follows instructions for all repos
- add Dockerfile to test out our exact configuration


how to use the fork on debian
------------------------------

    apt-get -yqq update && apt-get install -yqq s3fs cmake libfuse-dev build-essential libfuse-dev libmhash-dev libminizip-dev     build-essential pkg-config cmake g++ clang libfuse-dev libmhash-dev libminizip-dev zlib1g-dev libssl-dev libgtest-dev git

    git clone https://github.com/liquidinvestigations/fuse-7z-ng
    cd fuse-7z-ng

    ./build.sh


fuse-7z-ng
==========

fuse-7z-ng is a FUSE file system that uses the p7zip
library to access all archive formats supported by 7-zip.

This project is a fork of fuse-7z ( https://gitorious.org/fuse-7z/fuse-7z ).
Original author: Jérôme Carretero <cJ-7z@zougloub.eu>

Authors
=======

David Kedves <david.kedves@borgcollective.eu>
Jérôme Carretero <cJ-7z@zougloub.eu>
For more details see git log.

License
=======

fuse-7z-ng is licensed under the GNU GPL v3. (See COPYING for more information)

Usage
=====

Mounting an archive with fuse-7z-ng is like mounting another typical FUSE
filesystem:
$ ./fuse-7z-ng --automount foobar.zip ~/mount

Note: --automount makes the target folder if not present.

Then do something with the mounted file system, and unmount:

$ fusermount -u ~/mount

See the FUSE documentation for details.

Building
========

You need CMake for building.
And you need to build lib7zip separately and provide CMake with the links to include and the lib. You may use https://github.com/KOLANICH/lib7zip for this, it contains some improved CMake scripts.

Issues
======

Currently it crashes on Windows with Buffer Overflow Exception. Under debugging it doesn't, but returns some nonsense like files sizes of exabytes.

Note that extension auto-detection (by magic) seems to have issues,
but you can work around that by creating symlinks with proper extensions::
$ ln -sf "[Contents]" $TMP/initrd-contents.cpio
$ fuse-7z-ng --automount $TMP/initrd-contents.cpio ~/mnt/initrd-contents

Status
======

Currently, the code is a tiny glue layer between FUSE and lib7zip,
allowing for read access in archives.
The design is very basic, and the code is in a proof of concept stage,
which is not optimal but seems OK for the moment, to read archives.
All the properties of all the files in the archive are read at initialization.
But it happens to be quite fast, even for huge archives with hundreds
of thousands of files.
Only reads are planned at the moment, as the lib7zip library only supports them.
Writes will come later, if they come : I have no idea on how to perform optimal
writes on big archives, and I don't know any real (sane) use case of writing
in archives.

About

fuse-7z is a FUSE file system that uses the p7zip library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 86.0%
  • CMake 4.7%
  • Python 3.2%
  • C 2.6%
  • Roff 1.7%
  • Scheme 0.6%
  • Other 1.2%