{"id":46535259,"url":"https://github.com/umjammer/vavi-util-archive","last_synced_at":"2026-03-06T23:32:30.080Z","repository":{"id":24042668,"uuid":"109197454","full_name":"umjammer/vavi-util-archive","owner":"umjammer","description":"🗜️ Integrated Archiving method and Compressed stream SPI for Java (zip, lha, cab, gzip, etc...)","archived":false,"fork":false,"pushed_at":"2025-12-06T08:57:47.000Z","size":1466,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-10T02:18:54.523Z","etag":null,"topics":["7zip","archive","commons-compress","gzip","java","jitpack","lha","rar","spi","tar","zip"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umjammer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-11-02T00:08:24.000Z","updated_at":"2025-12-06T08:56:38.000Z","dependencies_parsed_at":"2024-11-25T02:32:39.785Z","dependency_job_id":null,"html_url":"https://github.com/umjammer/vavi-util-archive","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/umjammer/vavi-util-archive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umjammer%2Fvavi-util-archive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umjammer%2Fvavi-util-archive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umjammer%2Fvavi-util-archive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umjammer%2Fvavi-util-archive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umjammer","download_url":"https://codeload.github.com/umjammer/vavi-util-archive/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umjammer%2Fvavi-util-archive/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30203351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["7zip","archive","commons-compress","gzip","java","jitpack","lha","rar","spi","tar","zip"],"created_at":"2026-03-06T23:32:29.588Z","updated_at":"2026-03-06T23:32:30.052Z","avatar_url":"https://github.com/umjammer.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![](https://jitpack.io/v/umjammer/vavi-util-archive.svg)](https://jitpack.io/#umjammer/vavi-util-archive)\n[![Java CI](https://github.com/umjammer/vavi-util-archive/actions/workflows/maven.yml/badge.svg)](https://github.com/umjammer/vavi-util-archive/actions/workflows/maven.yml)\n[![CodeQL](https://github.com/umjammer/vavi-util-archive/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/umjammer/vavi-util-archive/actions/workflows/codeql-analysis.yml)\n![Java](https://img.shields.io/badge/Java-17-b07219)\n\n# vavi-util-archive\n\n\u003cimg alt=\"logo\" src=\"src/test/resources/duke_trunk.png\" width=\"160\" /\u003e\n\n🌏 Extract the world!\n\nextract all archive types in the same way!\u003c/br\u003e\narchives are able to mount as fuse also using [vavi-nio-file-archive](https://github.com/umjammer/vavi-apps-fuse/tree/master/vavi-nio-file-archive)\nand [vavi-net-fuse](https://github.com/umjammer/vavi-apps-fuse/tree/master/vavi-net-fuse)\n\n### Status\n\n| name     | mathod    | read | write | comment | library                                                                 |\n|----------|-----------|------|--------|---------|-------------------------------------------------------------------------|\n| binhex   | archiving | ✅    | - |         | [binhex](https://github.com/umjammer/JBinHex)                           |\n| bzip2    | archiving | ✅    | - |         | [commons-compress](https://commons.apache.org/proper/commons-compress/) |\n| cab      | archiving | ✅    | - |         | [dorkbox](https://github.com/umjammer/CabParser)                        |\n| gca      | archiving | -    | - | win only | native                                                                        |\n| gca      | archiving | -    | - |         | shell                                                                        |\n| gzip     | archiving | ✅    | - |         | jdk                                                                     |\n| lha      | archiving | ✅    | - |         | [lha](https://github.com/umjammer/jlha)                                 |\n| rar      | archiving | -    | - | win only | native                                                                    |\n| rar      | archiving | -    | - |         | shell                                                                     |\n| rar      | archiving | ✅*   | - |         | [java-unrar](https://github.com/umjammer/java-unrar)                    |\n| rar      | archiving | ✅    | - | no rar5 | [junrar](https://github.com/junrar/junrar)                              |\n| sevenzip | archiving | ✅    | - | 7z only | [commons-compress](https://commons.apache.org/proper/commons-compress/) |\n| sevenzip | archiving | -    | - |         | native                                                                        |\n| stuffit  | archiving |      | - |         | native                                                                        |\n| tar      | archiving | ✅    | - |         | [commons-compress](https://commons.apache.org/proper/commons-compress/) |\n| tar      | stream    | ✅    | - |         | [commons-compress](https://commons.apache.org/proper/commons-compress/) |\n| zip      | archiving | ✅*   | - |         | jdk                                                                     |\n| zip      | archiving | ✅    | - |         | [ant](https://ant.apache.org/)                                          |\n| cpio     | stream    | 🚧   | - |         | gjt                                                                     |\n| lzma     | stream    | 🚧   | - |         | [p7zip](https://p7zip.sourceforge.net/)                                 |\n| rpm      | archiving | 🚧   | - |         | gjt                                                                     |\n| apache   | archiving | ✅    | - | multi   | [commons-compress](https://commons.apache.org/proper/commons-compress/) |\n\n\u003csub\u003e* chosen as spi\u003c/sub\u003e\n\n## Install\n\n * [maven](https://jitpack.io/#umjammer/vavi-util-archive)\n\n## Usage\n\n### archive extraction\n\n```java\n    Archive archive = Archives.getArchive(Paths.get(\"foo/bar.rar\").toFile());\n    Path outDir = Paths.get(\"foo/bar\");\n    for (Entry entry : archive.entries()) {\n        Files.copy(archive.getInputStream(entry), outDir.resolve(entry.getName()));\n    }\n```\n\n### archive decompression\n\n```java\n    InputStream compressed = Archives.getInputStream(Paths.get(\"foo/bar.tar.bz\").toFile());\n    Files.copy(compressed, Paths.get(\"foo/bar.tar\"));\n```\n## References\n\n### License\n\n * [Giant Java Tree/cpio](http://www.gjt.org/servlets/JCVSlet/list/gjt/org/gjt/archive/cpio) ... Unknown\n * [Giant Java Tree/rpm](http://www.gjt.org/servlets/JCVSlet/list/gjt/org/gjt/archive/rpm) ... Unknown\n * [p7zip/lzma](https://p7zip.sourceforge.net/) ... LGPL\n * [LHA for Java](http://homepage1.nifty.com/dangan/) ... [LICENSE](src/main/java/vavi/util/archive/lha/LISENCE-LHAforJava)\n\n## TODO\n\n * registry like IIORegistry\n * [commons-vfs](https://commons.apache.org/proper/commons-vfs/)\n * [truevfs](https://github.com/christian-schlichtherle/truevfs)\n * ~~apache commons-compress~~\n * https://github.com/ZIPmagic/ZIPmagic/tree/master/StuffIt%20SDK\n * ~~https://github.com/cstroe/SevenZip-Java~~ (use 7zip-jbinding)\n * write!\n * ~~rar5~~ (done by 7zip-jbinding)\n   * ~~[@marcusvoltolim]((https://github.com/marcusvoltolim/file-processor#readme)) says [sevenzipjbinding](https://github.com/borisbrodski/sevenzipjbinding) can deal rar5 ???~~\n     * it's [true](https://github.com/borisbrodski/sevenzipjbinding/issues/19#issuecomment-578636772)\n   * unar v1.10.7 ... ok\n   * 7zip 17.04 ... ok\n * ~~https://github.com/Diab1o/java-7z-archiver ... yet another pure java 7zip implementation?~~ (done)\n * where is my jna 7z implementation? (in the crashed hdd?)\n * binary things ... gca.exe -\u003e dll -\u003e 64bit -\u003e mach-O + winelib -\u003e dylib\n   * https://github.com/gitGNU/objconv\n   * https://github.com/jakeajames/dylibify\n   * https://github.com/hasherezade/exe_to_dll\n\n---\n\n\u003csub\u003eimage designed by @umjammer, drawn by nano banana\u003c/sub\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumjammer%2Fvavi-util-archive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumjammer%2Fvavi-util-archive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumjammer%2Fvavi-util-archive/lists"}