https://github.com/openscopeproject/ziprofs
FUSE file system with transparent access to zip files as if they were folders.
https://github.com/openscopeproject/ziprofs
fuse fuse-filesystem zip
Last synced: about 1 year ago
JSON representation
FUSE file system with transparent access to zip files as if they were folders.
- Host: GitHub
- URL: https://github.com/openscopeproject/ziprofs
- Owner: openscopeproject
- License: mit
- Created: 2020-02-23T04:33:27.000Z (over 6 years ago)
- Default Branch: dev
- Last Pushed: 2024-09-20T16:57:32.000Z (almost 2 years ago)
- Last Synced: 2025-03-30T21:51:13.761Z (about 1 year ago)
- Topics: fuse, fuse-filesystem, zip
- Language: Python
- Size: 19.5 KB
- Stars: 12
- Watchers: 3
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ZipROFS
[](https://travis-ci.com/openscopeproject/ZipROFS)
This is a FUSE filesystem that acts as pass through to another FS except it
expands zip files like folders and allows direct transparent access to the contents.
### Dependencies
* FUSE
* fusepy
### Limitations
* Read only
* Nested zip files are not expanded, they are still just files
### Example usage
To mount run ziprofs.py:
```shell
$ ./ziprofs.py ~/root ~/mount -o allowother,cachesize=2048
```
Example results:
```shell
$ tree root
root
├── folder
├── test.zip
└── text.txt
$ tree mount
mount
├── folder
├── test.zip
│ ├── folder
│ │ ├── emptyfile
│ │ └── subfolder
│ │ └── file.txt
│ ├── script.sh
│ └── text.txt
└── text.txt
```
You can later unmount it using:
```shell
$ fusermount -u ~/mount
```
Or:
```shell
$ umount ~/mount
```
Full help:
```shell
$ ./ziprofs.py -h
usage: ziprofs.py [-h] [-o options] [root] [mountpoint]
ZipROFS read only transparent zip filesystem.
positional arguments:
root filesystem root (default: None)
mountpoint filesystem mount point (default: None)
optional arguments:
-h, --help show this help message and exit
-o options comma separated list of options: foreground, debug, allowother, async, cachesize=N (default: {})
```
`foreground` and `allowother` options are passed to FUSE directly.
`debug` option is used to print all syscall details to stdout.
By default ZipROFS disables async reads to improve performance since async syscalls can
be reordered in fuse which heavily impacts read speeds.
If async reads are preferable, pass `async` option on mount.
`cachesize` option determines in memory zipfile cache size, defaults to 1000