{"id":29612378,"url":"https://github.com/andrew-grechkin/fuse3-p7zip","last_synced_at":"2025-07-20T21:38:20.511Z","repository":{"id":45764072,"uuid":"267431296","full_name":"andrew-grechkin/fuse3-p7zip","owner":"andrew-grechkin","description":"fuse3 file system that uses the p7zip library to mount archives","archived":false,"fork":false,"pushed_at":"2024-12-27T15:13:39.000Z","size":80,"stargazers_count":25,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-15T06:42:40.311Z","etag":null,"topics":["7z","7zip","archive","filesystem","fuse","fuse3","linux","mount","zip"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andrew-grechkin.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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-27T21:36:25.000Z","updated_at":"2025-06-15T16:41:05.000Z","dependencies_parsed_at":"2023-11-24T22:30:53.637Z","dependency_job_id":"1c7c5880-b4e7-4490-b730-eacf9d975152","html_url":"https://github.com/andrew-grechkin/fuse3-p7zip","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/andrew-grechkin/fuse3-p7zip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrew-grechkin%2Ffuse3-p7zip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrew-grechkin%2Ffuse3-p7zip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrew-grechkin%2Ffuse3-p7zip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrew-grechkin%2Ffuse3-p7zip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrew-grechkin","download_url":"https://codeload.github.com/andrew-grechkin/fuse3-p7zip/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrew-grechkin%2Ffuse3-p7zip/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266204640,"owners_count":23892366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["7z","7zip","archive","filesystem","fuse","fuse3","linux","mount","zip"],"created_at":"2025-07-20T21:38:18.983Z","updated_at":"2025-07-20T21:38:20.502Z","avatar_url":"https://github.com/andrew-grechkin.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fuse3-p7zip\n\n[![Build status](https://github.com/andrew-grechkin/fuse3-p7zip/workflows/CMake/badge.svg)](https://github.com/andrew-grechkin/fuse3-p7zip/actions)\n\n## Abstract\n\nfuse3 file system that uses the 7zip library to mount archives (read only)\n\n## Synopsis\n\n```bash\n$ fuse3-p7zip archive.7z /tmp/mnt\n$ ls -la /tmp/mnt\n$ fusermount -u /tmp/mnt\n```\n\n## Description\n\nhttps://github.com/andrew-grechkin/fuse3-p7zip\n\nThis application is an implementation of Filesystem in Userspace (FUSE) version 3 backed by 7zip library. It's able to\nmount any archive supported by 7zip as a filesystem mountpoint and have read only access to any file in this archive.\n\n## Dependencies\n\n* Linux\n* fuse3\n* 7zip\n\n## Enforcing codepage by renaming archive\n\nIf archive name matches regex `m/[.] cp\\d{3,} [.]/ix` (for example `cyrillic-created-on-windows.cp866.zip`) then matched\nencoding `cp866` will be enforced for listing archived files/directories.\n\n## Configuration\n\n### Command line options\n\n* -p `\u003cPASSWORD\u003e`\n* --password=`\u003cPASSWORD\u003e`\n\nProvide a password which will be used if archive is protected with a password.\n\n* --passfile=`\u003c/path/to/password/file\u003e`\n\nProvide a path to a file with a password which will be used if archive is protected with a password.\n\n### Environment variables\n\n* FUSE3_P7ZIP_LIBRARY\n\nChange where application searches for 7z.so library. By default this is `/usr/lib/7zip/7z.so`\n\n* FUSE3_P7ZIP_PASSWORD\n\nProvide a password which will be used if archive is protected with a password.\n\n* FUSE3_P7ZIP_PASSFILE\n\nProvide a password file which will be used if archive is protected with a password.\n\n\tIf executable file is provided then its output to /dev/stdout will be used as a password.\n\tIf non-executable file is provided then its content will be used as a password.\n\n* FUSE3_P7ZIP_FORCE_ENCODING\n\nSome archives (especially those ones created on windows) have file names encoded in non Unicode encoding. This\nenvironment variable forces application to use alternative encoding to decode file names.\n\nfor example:\n\n```bash\n$ fuse3-p7zip cyrillic-created-on-windows.zip /tmp/mnt\n$ ls /tmp/mnt\n''$'\\302\\217''à¨¢¥â.txt'\n\n$ fusermount -u /tmp/mnt\n\n$ FUSE3_P7ZIP_FORCE_ENCODING=CP866 fuse3-p7zip cyrillic-created-on-windows.zip /tmp/mnt\n$ ls /tmp/mnt\n'Привет.txt'\n```\n\n* FUSE3_P7ZIP_MAX_OPEN_SIZE\n\nThe nature of 7z API does not allow to have random access to the content of a file in archive. This means that each\nfile should be extracted to a temporary directory on access. If this file is too big (for example it's partition in an\n.img file - application will extract the whole partition to /tmp. Most of the time on modern Linux it's a RAM based\ndirectory). To prevent this situation you can set this environment variable to a maximum allowed file size in bytes.\nAttempts openining any file in archive bigger than this will end up in E2BIG error.\n\n* FUSE3_P7ZIP_FORMATS\n\nWhen opening a file the application tries all formats in the alphabetical order. Sometimes it's desired to open a file\nwith a format later in the list. This environment variable allows to override formats order.\n\nfor example (try open .iso file with Iso or Udf formats first and only fallback on APM and GPT formats)\n\n```bash\nFUSE3_P7ZIP_FORMATS=\"Iso:Udf:*:APM:GPT\" fuse3-p7zip ubuntu-20.04-desktop-amd64.iso /tmp/mnt\n```\n\nTo check the list of all available formats run `7z i` command\n\n## Examples\n\n### password protected archive, request password interactively (KDE password popup window)\n\n```bash\n$ fuse3-p7zip example/archive.7z /tmp/mnt --passfile=example/password-kde\n```\n\n```bash\n$ export FUSE3_P7ZIP_PASSFILE=example/password-kde\n$ fuse3-p7zip example/archive.7z /tmp/mnt\n```\n\n### password protected archive, fetch password from a password storage\n\n```bash\n$ fuse3-p7zip example/archive.7z /tmp/mnt --passfile=example/password-pass\n```\n\n### vifm config snippet (mount 7zip supported archive with fuse3-p7zip in vifm)\n\n\u003e I suggest to use [archivemount](https://github.com/cybernoid/archivemount) for all tar-based archives as a priority and\n\u003e only fallback to p7zip for such archives\n\n```vim\nfiletype *.tar,\n\t\\*.tar.bz2,*.tbz2,*.tbz,*.tz2,*.tar.gz,*.tgz,*.taz,*.tar.lz,*.tlzip,*.tar.lzma,*.tlzma,*.tlz,\n\t\\*.tar.lzop,*.tlzo,*.tlzop,*.tar.xz,*.txz,*.tar.zst,*.tzst,*.tar.Z,*.taZ,\n\t\\*.bz2,*.gz,*.lz,*.lzma,*.lzop,*.xz,*.zst,*.Z,\n\t\\*.jar,*.war,*.ear,*.oxt,*.apkg,*.lha,*.ar,*.cpio,*.rpm,*.deb,*.udeb,*.mtree,*.xar,\n\t\\ {Mount with archivemount}\n\t\\ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR,\nfiletype *.7z,\n\t\\*.dsl.dz,*.tar,*.a,*.so,lib*.so.*,*.zip,*.ova,*.sfs,\n\t\\*.apk,*.apm,*.ar,*.arj,*.cab,*.chm,*.cpio,*.cramfs,*.deb,*.dll,*.dmg,*.doc,*.esd,*.exe,\n\t\\*.flv,*.hxs,*.img,*.iso,*.iso,*.jar,*.lib,*.macho,*.msi,*.msp,*.nsis,*.pkg,*.pmd,*.ppt,\n\t\\*.qcow,*.qcow2,*.qcow2c,*.r00,*.rar,*.raw,*.rpm,*.squashfs,*.swf,*.swm,*.sys,*.vdi,*.vhd,*.vmdk,*.wim,*.xar,*.xls,\n\t\\*.tar.bz2,*.tbz2,*.tbz,*.tz2,*.tar.gz,*.tgz,*.taz,*.tar.lz,*.tlzip,*.tar.lzma,*.tlzma,*.tlz,\n\t\\*.tar.lzop,*.tlzo,*.tlzop,*.tar.xz,*.txz,*.tar.zst,*.tzst,*.tar.Z,*.taZ,\n\t\\*.bz2,*.gz,*.lz,*.lzma,*.lzop,*.xz,*.zst,*.Z\n\t\\ {Mount with fuse3-p7zip}\n\t\\ FUSE_MOUNT|fuse3-p7zip %SOURCE_FILE %DESTINATION_DIR,\n```\n\n## Author\n\n* Andrew Grechkin\n\n## License\n\n* GPL v3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrew-grechkin%2Ffuse3-p7zip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrew-grechkin%2Ffuse3-p7zip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrew-grechkin%2Ffuse3-p7zip/lists"}