GithubHelp home page GithubHelp logo

cnsuhao / fuse-7z-ng Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kedazo/fuse-7z-ng

0.0 1.0 0.0 425 KB

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

License: GNU General Public License v3.0

CMake 16.61% Makefile 0.78% C++ 76.54% C 6.07%

fuse-7z-ng's Introduction

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 <[email protected]>

Authors
=======

David Kedves <[email protected]>
Jérôme Carretero <[email protected]>
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.

fuse-7z-ng's People

Contributors

kedazo avatar kolanich avatar lxyd avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.