{"id":13465879,"url":"https://github.com/google/fuse-archive","last_synced_at":"2026-04-26T03:02:22.261Z","repository":{"id":43396106,"uuid":"400375648","full_name":"google/fuse-archive","owner":"google","description":"FUSE file system for archives and compressed files (ZIP, RAR, 7Z, ISO, TGZ, XZ...)","archived":false,"fork":false,"pushed_at":"2026-04-22T05:27:04.000Z","size":1630,"stargazers_count":241,"open_issues_count":2,"forks_count":24,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-04-22T06:49:33.529Z","etag":null,"topics":["archiving","filesystem","fuse-filesystem","zip"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-08-27T03:24:47.000Z","updated_at":"2026-04-22T05:27:08.000Z","dependencies_parsed_at":"2026-02-11T13:12:50.776Z","dependency_job_id":null,"html_url":"https://github.com/google/fuse-archive","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/google/fuse-archive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Ffuse-archive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Ffuse-archive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Ffuse-archive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Ffuse-archive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/fuse-archive/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Ffuse-archive/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32237428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archiving","filesystem","fuse-filesystem","zip"],"created_at":"2024-07-31T15:00:36.528Z","updated_at":"2026-04-26T03:02:22.232Z","avatar_url":"https://github.com/google.png","language":"C++","funding_links":[],"categories":["C++","Built On"],"sub_categories":["Kafka"],"readme":"---\ntitle: fuse-archive\nsection: 1\nheader: User Manual\nfooter: fuse-archive 1.19\ndate: March 2026\n---\n\n# NAME\n\n**fuse-archive** - Mount archives as a read-only FUSE file system.\n\n# SYNOPSIS\n\n* **fuse-archive** [*options*] *archive* [*mount_point*]\n* **fuse-archive** [*options*] *archive* ... *mount_point*\n\n# DESCRIPTION\n\n**fuse-archive** serves one or several archives or compressed files (e.g.\n`foo.tar`, `foo.tar.gz`, `foo.xz` or `foo.zip`) as a read-only\n[FUSE](https://en.wikipedia.org/wiki/Filesystem_in_Userspace) file system.\n\nIt is similar to [**mount-zip**](https://github.com/google/mount-zip) and\n[**fuse-zip**](https://bitbucket.org/agalanin/fuse-zip) but speaks a larger\nrange of archive or compressed file formats.\n\nIt is similar to [**archivemount**](https://github.com/cybernoid/archivemount)\nbut can be much faster (see the Performance section below) although it can only\nmount read-only, not read-write.\n\n# OPTIONS\n\n**-\\-help** or **-h**\n:   Print help\n\n**-\\-version** or **-V**\n:   Print version info\n\n**-o quiet** or **-q**\n:   Print fewer log messages\n\n**-o verbose** or **-v**\n:   Print more log messages\n\n**-o redact**\n:   Redact file names from log messages\n\n**-o force**\n:   Continue despite errors\n\n**-o maxfilters=N**\n:   Maximum number of filters per archive (default is 1)\n\n**-o lazycache**\n:   Incremental caching of uncompressed data\n\n**-o nocache**\n:   No caching of uncompressed data\n\n**-o nomerge**\n:   Do not merge multiple archives on top of each other. Instead, create a\n    subdirectory for each archive inside the mount point.\n\n**-o notrim**\n:   Do not trim the base of the tree. Keep all the intermediate directories as\n    specified in the archive(s).\n\n**-o nodirs**\n:   No directories. Flatten the archive structure by presenting all its files in\n    its root directory. This might make sense if you're not interested in the\n    archive tree structure, but only in its file data, e.g. for malware scanning.\n\n**-o nospecials**\n:   Hide special files (FIFOs, sockets, devices)\n\n**-o nosymlinks**\n:   Hide symbolic links\n\n**-o nohardlinks**\n:   No files with multiple hard links\n\n**-o noxattrs**\n:   No extended attributes\n\n**-o dmask=M**\n:   Directory permission mask in octal (default is 0022)\n\n**-o fmask=M**\n:   File permission mask in octal (default is 0022)\n\n**-o uid=N**\n:   Set the file owner of all the items in the mounted archive (default is\n    current user)\n\n**-o gid=N**\n:   Set file group of all the items in the mounted archive (default is current\n    group)\n\n**-o default_permissions**\n:   Use the file owner (UID), group (GID) and permissions stored with each item\n    in the archive.\n\n**-f**\n:   Foreground mode\n\n**-d**\n:   Foreground mode with debug output\n\n# ARCHIVE FORMATS\n\n**fuse-archive** determines an archive format from its filename extension. It\nrecognizes the following extensions:\n\n*   Archive formats `7z`, `7zip`, `a`, `ar`, `cab`, `cpio`, `deb`, `iso`,\n    `iso9660`, `jar`, `mtree`, `rar`, `rpm`, `tar`, `war`, `warc`, `xar`, `zip`,\n    `zipx`\n*   ZIP-based file formats `crx`, `odf`, `odg`, `odp`, `ods`, `odt`, `docx`,\n    `ppsx`, `pptx`, `xlsx`\n*   Compressed TARs `tb2`, `tbr`, `tbz`, `tbz2`, `tz2`, `tgz`, `tlz`, `tlz4`,\n    `tlzma`, `txz`, `tz`, `taz`, `tzs`, `tzst`, `tzstd`\n*   Compression filters `br`, `brotli`, `bz2`, `bzip2`, `grz`, `grzip`, `gz`,\n    `gzip`, `lha`, `lrz`, `lrzip`, `lz`, `lz4`, `lzip`, `lzma`, `lzo`, `lzop`,\n    `xz`, `z`, `zst`, `zstd`\n*   ASCII encoding filters `b64`, `base64`, `uu`\n*   Encryption filters `asc`, `gpg`, `pgp` \n\nIf the filename extension is not recognized, then **fuse-archive** determines\nthe archive format by looking at its byte contents. This heuristic works all\nright most of the time, but there are corner cases for which it might get\nconfused.\n\n**fuse-archive** relies on the availability of the following filter programs:\n`base64`, `brotli`, `compress`, `gpg`, `grzip`, `lrzip` and `lzop`.\n\n# CACHING\n\nBy default, **fuse-archive** decompresses and caches the whole archive before\nserving its contents. This ensures that the served files can be accessed in any\norder without any performance issue.\n\nDecompressed data is cached in an anonymous file created in the `tmp` directory\n(`$TMPDIR` or `/tmp` by default). This cache can use a significant amount of\ndisk space, but it is automatically deleted when the archive is unmounted.\n\nIf there is not enough temporary space to cache the whole archive,\n**fuse-archive** can be run with the `-o nocache` or the `-o lazycache` options.\nHowever, this can cause **fuse-archive** to be much slower at serving files.\n\n# PERFORMANCE\n\nCreate a single `.tar.gz` file that is 256 MiB decompressed and 255 KiB\ncompressed (the file just contains repeated 0x00 NUL bytes):\n\n```\n$ truncate --size=256M zeroes\n$ tar cfz zeroes-256mib.tar.gz zeroes\n```\n\nHere are **fuse-archive**'s timings:\n\n```\n$ time fuse-archive zeroes-256mib.tar.gz mnt\nreal    0m0.443s\n\n$ dd if=mnt/zeroes of=/dev/null status=progress\n268435456 bytes (268 MB, 256 MiB) copied, 0.836048 s, 321 MB/s\n\n$ umount mnt\n```\n\nFor comparison, here are **archivemount**'s timings:\n\n```\n$ time archivemount zeroes-256mib.tar.gz mnt\nreal    0m0.581s\n\n$ dd if=mnt/zeroes of=/dev/null status=progress\n268435456 bytes (268 MB, 256 MiB) copied, 570.146 s, 471 kB/s\n\n$ umount mnt\n```\n\nIn this case, **fuse-archive** takes about the same time to load the archive as\n**archivemount**, but it is **~700× faster** (0.83s vs 570s) to copy out the\ndecompressed contents. This is because **fuse-archive** fully caches the archive\nand does not use **archivemount**'s\n[quadratic complexity algorithm](https://github.com/cybernoid/archivemount/issues/21).\n\n# RETURN VALUE\n\n**0**\n:   Success.\n\n**1**\n:   Generic error code for: missing command line argument, too many command line\n    arguments, unknown option, mount point is not empty, etc.\n\n**10**\n:   Cannot create the mount point.\n\n**11**\n:   Cannot open the archive file.\n\n**12**\n:   Cannot create the cache file.\n\n**13**\n:   Cannot write to the cache file. This is most likely the indication that\n    there is not enough temp space.\n\n**20**\n:   The archive contains an encrypted file, but no password was provided.\n\n**21**\n:   The archive contains an encrypted file, and the provided password does not\n    decrypt it.\n\n**22**\n:   The archive contains an encrypted file, and the encryption method is not\n    supported.\n\n**30**\n:   Cannot recognize the archive format.\n\n**31**\n:   Invalid archive header.\n\n**32**\n:   Cannot read and extract the archive.\n\n# SEE ALSO\n\narchivemount(1), mount-zip(1), fuse-zip(1), fusermount(1), fuse(8), umount(8)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Ffuse-archive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Ffuse-archive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Ffuse-archive/lists"}