py-zippy 1.0.0__tar.gz → 1.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,197 @@
1
+ Metadata-Version: 2.4
2
+ Name: py-zippy
3
+ Version: 1.0.1
4
+ Summary: Archive Utility Toolkit supporting multi-format workflows, password recovery, and repair helpers.
5
+ Author-email: John Hauger Mitander <john@on1.no>
6
+ Maintainer-email: John Hauger Mitander <john@on1.no>
7
+ License: MIT License
8
+
9
+ Copyright (c) 2025 John H. Mitander
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.
28
+
29
+ Project-URL: Homepage, https://github.com/John0n1/zippy
30
+ Project-URL: Documentation, https://github.com/John0n1/zippy#readme
31
+ Project-URL: Repository, https://github.com/John0n1/zippy.git
32
+ Project-URL: Issues, https://github.com/John0n1/zippy/issues
33
+ Project-URL: Changelog, https://github.com/John0n1/zippy/releases
34
+ Keywords: archives,zip,tar,cli,toolkit,compression,encryption,password-recovery
35
+ Classifier: Development Status :: 5 - Production/Stable
36
+ Classifier: Environment :: Console
37
+ Classifier: Intended Audience :: System Administrators
38
+ Classifier: Intended Audience :: Developers
39
+ Classifier: License :: OSI Approved :: MIT License
40
+ Classifier: Operating System :: OS Independent
41
+ Classifier: Programming Language :: Python
42
+ Classifier: Programming Language :: Python :: 3
43
+ Classifier: Programming Language :: Python :: 3.9
44
+ Classifier: Programming Language :: Python :: 3.10
45
+ Classifier: Programming Language :: Python :: 3.11
46
+ Classifier: Programming Language :: Python :: 3.12
47
+ Classifier: Programming Language :: Python :: 3.13
48
+ Classifier: Topic :: System :: Archiving
49
+ Classifier: Topic :: System :: Archiving :: Compression
50
+ Classifier: Topic :: Utilities
51
+ Requires-Python: >=3.9
52
+ Description-Content-Type: text/markdown
53
+ License-File: LICENSE
54
+ Requires-Dist: colorama>=0.4.6
55
+ Requires-Dist: python-dotenv>=1.0
56
+ Requires-Dist: pyzipper>=0.3.6
57
+ Requires-Dist: patool>=1.12
58
+ Provides-Extra: dev
59
+ Requires-Dist: pytest>=7.0; extra == "dev"
60
+ Requires-Dist: pytest-cov>=4.0; extra == "dev"
61
+ Requires-Dist: black>=23.0; extra == "dev"
62
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
63
+ Provides-Extra: full
64
+ Requires-Dist: py7zr>=0.20.0; extra == "full"
65
+ Requires-Dist: rarfile>=4.0; extra == "full"
66
+ Provides-Extra: windows
67
+ Requires-Dist: pyinstaller>=5.0; extra == "windows"
68
+ Provides-Extra: macos
69
+ Requires-Dist: py2app>=0.28; extra == "macos"
70
+ Dynamic: license-file
71
+
72
+ <div align="center">
73
+
74
+ # Zippy
75
+
76
+ <img src="debian/icons/zippy.svg" alt="Zippy" width="125" height="125">
77
+
78
+ **Version:** `1.0.1`
79
+
80
+ ![PyPi Version](https://img.shields.io/pypi/v/py-zippy?color=blue&logo=python&logoColor=white&style=flat-square)
81
+ ![Release](https://img.shields.io/github/v/release/John0n1/ZIPPY?color=blue&logo=github&logoColor=white&style=flat-square)
82
+
83
+ ![License](https://img.shields.io/badge/license-MIT-green?style=flat-square&logo=opensourceinitiative&logoColor=white)
84
+
85
+
86
+
87
+ ### Multi-purpose archive toolkit for creation, extraction, exfiltration, and repair
88
+
89
+ -> **Supports a wide range of archive formats with a consistent interface.**
90
+
91
+ -> **Exfiltration by password cracking for encrypted archives.**
92
+
93
+ -> **Includes a powerful repair toolkit for damaged archives.**
94
+
95
+ ___
96
+
97
+ ### Supported archives
98
+
99
+ | Format | Algorithm | Deep notes & typical use |
100
+ |--------|-----------|---------------------------|
101
+ | ZIP (.zip) | DEFLATE (store/deflate/deflate64; variants) | Per-file container with random access and per-file metadata. Widely supported across platforms. Optional password protection (ZipCrypto/AES) depends on tool. Good for cross‑platform distribution and per-file extraction. |
102
+ | TAR (.tar) | none (archive only) | Archive container preserving Unix metadata, permissions, and order. Not compressed—commonly paired with compressors (gzip/xz/bzip2) for multi-file archives and backups. |
103
+ | TAR.GZ / TGZ (.tar.gz, .tgz) | gzip (DEFLATE) | Stream compressor wrapping tar (single compressed stream). Fast decompression, ubiquitous, not random-access—ideal for streaming and distribution. |
104
+ | TAR.BZ2 / TBZ (.tar.bz2, .tbz) | bzip2 | Block compressor with higher ratios for some data at the cost of CPU; slower than gzip, not random-access. Good for distribution when size matters. |
105
+ | TAR.XZ / TLZ (.tar.xz, .tlz) | xz / LZMA2 | High compression ratio, memory- and CPU-intensive; slower but yields smaller archives. Best for distribution/releases where size is critical. |
106
+ | GZIP (.gz) | gzip (DEFLATE) | Single-file stream compressor. Combine with tar for multi-file archives. Fast and widely supported. |
107
+ | BZ2 (.bz2) | bzip2 | Single-file block compressor—better ratios in some cases, slower CPU. Use for single-file compression tasks. |
108
+ | XZ (.xz) | xz / LZMA2 | Single-file high-compression format with streaming support; resource-heavy but efficient for size-sensitive workloads. |
109
+ | LZMA (.lzma) | LZMA | Older single-file LZMA format similar to xz characteristics; less common but supported for specific compatibility needs. |
110
+
111
+ </div>
112
+
113
+ ## About
114
+ Zippy is a command-line toolkit for working with various archive formats. It provides a consistent interface for creating, extracting, and repairing archives, as well as tools for password cracking on encrypted ZIP files. It works across multiple platforms and is designed for both casual users and professionals needing reliable archive management. The repair tools can help salvage data from corrupted archives, making it a versatile addition to any toolkit. Zippy can also be used in offensive security contexts for penetration testing and forensic analysis. features include:
115
+ - **Multi-format support** - handles ZIP (including AES-encrypted), TAR (and compressed variants), and single-file compressors (gzip, bzip2, xz, lzma).
116
+ - **Password cracking** - built-in dictionary attack capabilities for encrypted ZIP files using a curated password list.
117
+ - **Archive repair** - tools to attempt recovery of corrupted archives, including salvage extraction and best-effort repairs.
118
+ - **Cross-platform** - works on Windows, macOS, and Linux with consistent command-line interface.
119
+ - **User-friendly features** - progress indicators, colorized logging, and tab completion for ease of use.
120
+ - **Automation friendly** - supports configuration saving/loading for repeatable tasks and CI environments.
121
+ - **Extensibility** - designed with a modular architecture, allowing for easy integration of new features and support for additional archive formats.
122
+ - **Performance** - optimized for speed and efficiency, making it suitable for both small-scale and large-scale archive operations.
123
+ - **Security** - incorporates best practices for secure handling of sensitive data, including support for encrypted archives and secure password storage.
124
+
125
+ ## Installation
126
+
127
+ ### From PyPI (recommended)
128
+
129
+ ```bash
130
+ python -m pip install zippy
131
+ ```
132
+
133
+ ### From source
134
+
135
+ ```bash
136
+ git clone https://github.com/John0n1/ZIPPY.git
137
+ cd ZIPPY
138
+ python -m pip install .
139
+ ```
140
+
141
+ ### Debian package
142
+
143
+ ```bash
144
+ sudo apt install ./zippy_*.deb
145
+ ```
146
+
147
+ ## Quick start
148
+
149
+
150
+ ### Extract an archive
151
+ ```bash
152
+ zippy --extract backups/site.tar.xz -o ./site
153
+ ```
154
+ ### Create a password-protected ZIP from multiple paths
155
+ ```bash
156
+ zippy --lock secure.zip -f docs,images -p "Tru5ted!"
157
+ ```
158
+ ### List TAR.BZ2 contents
159
+ ```bash
160
+ zippy --list datasets.tar.bz2
161
+ ```
162
+ ### Attempt unlocking with the bundled wordlist
163
+ ```bash
164
+ zippy --unlock encrypted.zip -d password_list.txt --verbose
165
+ ```
166
+ ### Run salvage repair on a damaged tarball
167
+ ```bash
168
+ zippy --repair broken.tar.gz --repair-mode remove_corrupted
169
+ ```
170
+ Run `zippy --help` for the full command reference or `zippy --version` to confirm the installed release.
171
+
172
+ ## Configuration & automation
173
+
174
+ - Use `--save-config <file>` to capture the current flag set (including passwords or dictionary paths if provided).
175
+ - Rehydrate saved flags via `--load-config <file>` for repeatable batch jobs.
176
+ - Disable animations with `--no-animation` for CI environments.
177
+
178
+ ## Logging & colours
179
+
180
+ Logging defaults to concise `INFO` output. Add `--verbose` for `DEBUG` traces. Colour output automatically downgrades in non-interactive terminals, while animations fall back to plain log messages when disabled or redirected. Windows terminals are supported through `colorama`.
181
+
182
+ ## Password dictionary
183
+
184
+ The bundled `password_list.txt` contains hundreds of common credentials, curated for demonstration purposes. The unlock command trims duplicates, ignores comments (`# ...`), and safely handles mixed encodings. Supply your own list with `--dictionary <file>` for larger attacks.
185
+
186
+ ## Contributing
187
+ Pull requests are welcome—please open an issue describing the enhancement before submitting substantial changes.
188
+
189
+ ## License
190
+
191
+ Zippy is released under the MIT License. See `LICENSE` for the full text.
192
+
193
+ ## Disclaimer
194
+
195
+ Zippy is provided "as is" without warranty of any kind. Use at your own risk and keep backups of critical data.
196
+
197
+ **The author is not responsible for any data loss or damage resulting from the use of this software.**
@@ -0,0 +1,126 @@
1
+ <div align="center">
2
+
3
+ # Zippy
4
+
5
+ <img src="debian/icons/zippy.svg" alt="Zippy" width="125" height="125">
6
+
7
+ **Version:** `1.0.1`
8
+
9
+ ![PyPi Version](https://img.shields.io/pypi/v/py-zippy?color=blue&logo=python&logoColor=white&style=flat-square)
10
+ ![Release](https://img.shields.io/github/v/release/John0n1/ZIPPY?color=blue&logo=github&logoColor=white&style=flat-square)
11
+
12
+ ![License](https://img.shields.io/badge/license-MIT-green?style=flat-square&logo=opensourceinitiative&logoColor=white)
13
+
14
+
15
+
16
+ ### Multi-purpose archive toolkit for creation, extraction, exfiltration, and repair
17
+
18
+ -> **Supports a wide range of archive formats with a consistent interface.**
19
+
20
+ -> **Exfiltration by password cracking for encrypted archives.**
21
+
22
+ -> **Includes a powerful repair toolkit for damaged archives.**
23
+
24
+ ___
25
+
26
+ ### Supported archives
27
+
28
+ | Format | Algorithm | Deep notes & typical use |
29
+ |--------|-----------|---------------------------|
30
+ | ZIP (.zip) | DEFLATE (store/deflate/deflate64; variants) | Per-file container with random access and per-file metadata. Widely supported across platforms. Optional password protection (ZipCrypto/AES) depends on tool. Good for cross‑platform distribution and per-file extraction. |
31
+ | TAR (.tar) | none (archive only) | Archive container preserving Unix metadata, permissions, and order. Not compressed—commonly paired with compressors (gzip/xz/bzip2) for multi-file archives and backups. |
32
+ | TAR.GZ / TGZ (.tar.gz, .tgz) | gzip (DEFLATE) | Stream compressor wrapping tar (single compressed stream). Fast decompression, ubiquitous, not random-access—ideal for streaming and distribution. |
33
+ | TAR.BZ2 / TBZ (.tar.bz2, .tbz) | bzip2 | Block compressor with higher ratios for some data at the cost of CPU; slower than gzip, not random-access. Good for distribution when size matters. |
34
+ | TAR.XZ / TLZ (.tar.xz, .tlz) | xz / LZMA2 | High compression ratio, memory- and CPU-intensive; slower but yields smaller archives. Best for distribution/releases where size is critical. |
35
+ | GZIP (.gz) | gzip (DEFLATE) | Single-file stream compressor. Combine with tar for multi-file archives. Fast and widely supported. |
36
+ | BZ2 (.bz2) | bzip2 | Single-file block compressor—better ratios in some cases, slower CPU. Use for single-file compression tasks. |
37
+ | XZ (.xz) | xz / LZMA2 | Single-file high-compression format with streaming support; resource-heavy but efficient for size-sensitive workloads. |
38
+ | LZMA (.lzma) | LZMA | Older single-file LZMA format similar to xz characteristics; less common but supported for specific compatibility needs. |
39
+
40
+ </div>
41
+
42
+ ## About
43
+ Zippy is a command-line toolkit for working with various archive formats. It provides a consistent interface for creating, extracting, and repairing archives, as well as tools for password cracking on encrypted ZIP files. It works across multiple platforms and is designed for both casual users and professionals needing reliable archive management. The repair tools can help salvage data from corrupted archives, making it a versatile addition to any toolkit. Zippy can also be used in offensive security contexts for penetration testing and forensic analysis. features include:
44
+ - **Multi-format support** - handles ZIP (including AES-encrypted), TAR (and compressed variants), and single-file compressors (gzip, bzip2, xz, lzma).
45
+ - **Password cracking** - built-in dictionary attack capabilities for encrypted ZIP files using a curated password list.
46
+ - **Archive repair** - tools to attempt recovery of corrupted archives, including salvage extraction and best-effort repairs.
47
+ - **Cross-platform** - works on Windows, macOS, and Linux with consistent command-line interface.
48
+ - **User-friendly features** - progress indicators, colorized logging, and tab completion for ease of use.
49
+ - **Automation friendly** - supports configuration saving/loading for repeatable tasks and CI environments.
50
+ - **Extensibility** - designed with a modular architecture, allowing for easy integration of new features and support for additional archive formats.
51
+ - **Performance** - optimized for speed and efficiency, making it suitable for both small-scale and large-scale archive operations.
52
+ - **Security** - incorporates best practices for secure handling of sensitive data, including support for encrypted archives and secure password storage.
53
+
54
+ ## Installation
55
+
56
+ ### From PyPI (recommended)
57
+
58
+ ```bash
59
+ python -m pip install zippy
60
+ ```
61
+
62
+ ### From source
63
+
64
+ ```bash
65
+ git clone https://github.com/John0n1/ZIPPY.git
66
+ cd ZIPPY
67
+ python -m pip install .
68
+ ```
69
+
70
+ ### Debian package
71
+
72
+ ```bash
73
+ sudo apt install ./zippy_*.deb
74
+ ```
75
+
76
+ ## Quick start
77
+
78
+
79
+ ### Extract an archive
80
+ ```bash
81
+ zippy --extract backups/site.tar.xz -o ./site
82
+ ```
83
+ ### Create a password-protected ZIP from multiple paths
84
+ ```bash
85
+ zippy --lock secure.zip -f docs,images -p "Tru5ted!"
86
+ ```
87
+ ### List TAR.BZ2 contents
88
+ ```bash
89
+ zippy --list datasets.tar.bz2
90
+ ```
91
+ ### Attempt unlocking with the bundled wordlist
92
+ ```bash
93
+ zippy --unlock encrypted.zip -d password_list.txt --verbose
94
+ ```
95
+ ### Run salvage repair on a damaged tarball
96
+ ```bash
97
+ zippy --repair broken.tar.gz --repair-mode remove_corrupted
98
+ ```
99
+ Run `zippy --help` for the full command reference or `zippy --version` to confirm the installed release.
100
+
101
+ ## Configuration & automation
102
+
103
+ - Use `--save-config <file>` to capture the current flag set (including passwords or dictionary paths if provided).
104
+ - Rehydrate saved flags via `--load-config <file>` for repeatable batch jobs.
105
+ - Disable animations with `--no-animation` for CI environments.
106
+
107
+ ## Logging & colours
108
+
109
+ Logging defaults to concise `INFO` output. Add `--verbose` for `DEBUG` traces. Colour output automatically downgrades in non-interactive terminals, while animations fall back to plain log messages when disabled or redirected. Windows terminals are supported through `colorama`.
110
+
111
+ ## Password dictionary
112
+
113
+ The bundled `password_list.txt` contains hundreds of common credentials, curated for demonstration purposes. The unlock command trims duplicates, ignores comments (`# ...`), and safely handles mixed encodings. Supply your own list with `--dictionary <file>` for larger attacks.
114
+
115
+ ## Contributing
116
+ Pull requests are welcome—please open an issue describing the enhancement before submitting substantial changes.
117
+
118
+ ## License
119
+
120
+ Zippy is released under the MIT License. See `LICENSE` for the full text.
121
+
122
+ ## Disclaimer
123
+
124
+ Zippy is provided "as is" without warranty of any kind. Use at your own risk and keep backups of critical data.
125
+
126
+ **The author is not responsible for any data loss or damage resulting from the use of this software.**
@@ -0,0 +1,197 @@
1
+ Metadata-Version: 2.4
2
+ Name: py-zippy
3
+ Version: 1.0.1
4
+ Summary: Archive Utility Toolkit supporting multi-format workflows, password recovery, and repair helpers.
5
+ Author-email: John Hauger Mitander <john@on1.no>
6
+ Maintainer-email: John Hauger Mitander <john@on1.no>
7
+ License: MIT License
8
+
9
+ Copyright (c) 2025 John H. Mitander
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.
28
+
29
+ Project-URL: Homepage, https://github.com/John0n1/zippy
30
+ Project-URL: Documentation, https://github.com/John0n1/zippy#readme
31
+ Project-URL: Repository, https://github.com/John0n1/zippy.git
32
+ Project-URL: Issues, https://github.com/John0n1/zippy/issues
33
+ Project-URL: Changelog, https://github.com/John0n1/zippy/releases
34
+ Keywords: archives,zip,tar,cli,toolkit,compression,encryption,password-recovery
35
+ Classifier: Development Status :: 5 - Production/Stable
36
+ Classifier: Environment :: Console
37
+ Classifier: Intended Audience :: System Administrators
38
+ Classifier: Intended Audience :: Developers
39
+ Classifier: License :: OSI Approved :: MIT License
40
+ Classifier: Operating System :: OS Independent
41
+ Classifier: Programming Language :: Python
42
+ Classifier: Programming Language :: Python :: 3
43
+ Classifier: Programming Language :: Python :: 3.9
44
+ Classifier: Programming Language :: Python :: 3.10
45
+ Classifier: Programming Language :: Python :: 3.11
46
+ Classifier: Programming Language :: Python :: 3.12
47
+ Classifier: Programming Language :: Python :: 3.13
48
+ Classifier: Topic :: System :: Archiving
49
+ Classifier: Topic :: System :: Archiving :: Compression
50
+ Classifier: Topic :: Utilities
51
+ Requires-Python: >=3.9
52
+ Description-Content-Type: text/markdown
53
+ License-File: LICENSE
54
+ Requires-Dist: colorama>=0.4.6
55
+ Requires-Dist: python-dotenv>=1.0
56
+ Requires-Dist: pyzipper>=0.3.6
57
+ Requires-Dist: patool>=1.12
58
+ Provides-Extra: dev
59
+ Requires-Dist: pytest>=7.0; extra == "dev"
60
+ Requires-Dist: pytest-cov>=4.0; extra == "dev"
61
+ Requires-Dist: black>=23.0; extra == "dev"
62
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
63
+ Provides-Extra: full
64
+ Requires-Dist: py7zr>=0.20.0; extra == "full"
65
+ Requires-Dist: rarfile>=4.0; extra == "full"
66
+ Provides-Extra: windows
67
+ Requires-Dist: pyinstaller>=5.0; extra == "windows"
68
+ Provides-Extra: macos
69
+ Requires-Dist: py2app>=0.28; extra == "macos"
70
+ Dynamic: license-file
71
+
72
+ <div align="center">
73
+
74
+ # Zippy
75
+
76
+ <img src="debian/icons/zippy.svg" alt="Zippy" width="125" height="125">
77
+
78
+ **Version:** `1.0.1`
79
+
80
+ ![PyPi Version](https://img.shields.io/pypi/v/py-zippy?color=blue&logo=python&logoColor=white&style=flat-square)
81
+ ![Release](https://img.shields.io/github/v/release/John0n1/ZIPPY?color=blue&logo=github&logoColor=white&style=flat-square)
82
+
83
+ ![License](https://img.shields.io/badge/license-MIT-green?style=flat-square&logo=opensourceinitiative&logoColor=white)
84
+
85
+
86
+
87
+ ### Multi-purpose archive toolkit for creation, extraction, exfiltration, and repair
88
+
89
+ -> **Supports a wide range of archive formats with a consistent interface.**
90
+
91
+ -> **Exfiltration by password cracking for encrypted archives.**
92
+
93
+ -> **Includes a powerful repair toolkit for damaged archives.**
94
+
95
+ ___
96
+
97
+ ### Supported archives
98
+
99
+ | Format | Algorithm | Deep notes & typical use |
100
+ |--------|-----------|---------------------------|
101
+ | ZIP (.zip) | DEFLATE (store/deflate/deflate64; variants) | Per-file container with random access and per-file metadata. Widely supported across platforms. Optional password protection (ZipCrypto/AES) depends on tool. Good for cross‑platform distribution and per-file extraction. |
102
+ | TAR (.tar) | none (archive only) | Archive container preserving Unix metadata, permissions, and order. Not compressed—commonly paired with compressors (gzip/xz/bzip2) for multi-file archives and backups. |
103
+ | TAR.GZ / TGZ (.tar.gz, .tgz) | gzip (DEFLATE) | Stream compressor wrapping tar (single compressed stream). Fast decompression, ubiquitous, not random-access—ideal for streaming and distribution. |
104
+ | TAR.BZ2 / TBZ (.tar.bz2, .tbz) | bzip2 | Block compressor with higher ratios for some data at the cost of CPU; slower than gzip, not random-access. Good for distribution when size matters. |
105
+ | TAR.XZ / TLZ (.tar.xz, .tlz) | xz / LZMA2 | High compression ratio, memory- and CPU-intensive; slower but yields smaller archives. Best for distribution/releases where size is critical. |
106
+ | GZIP (.gz) | gzip (DEFLATE) | Single-file stream compressor. Combine with tar for multi-file archives. Fast and widely supported. |
107
+ | BZ2 (.bz2) | bzip2 | Single-file block compressor—better ratios in some cases, slower CPU. Use for single-file compression tasks. |
108
+ | XZ (.xz) | xz / LZMA2 | Single-file high-compression format with streaming support; resource-heavy but efficient for size-sensitive workloads. |
109
+ | LZMA (.lzma) | LZMA | Older single-file LZMA format similar to xz characteristics; less common but supported for specific compatibility needs. |
110
+
111
+ </div>
112
+
113
+ ## About
114
+ Zippy is a command-line toolkit for working with various archive formats. It provides a consistent interface for creating, extracting, and repairing archives, as well as tools for password cracking on encrypted ZIP files. It works across multiple platforms and is designed for both casual users and professionals needing reliable archive management. The repair tools can help salvage data from corrupted archives, making it a versatile addition to any toolkit. Zippy can also be used in offensive security contexts for penetration testing and forensic analysis. features include:
115
+ - **Multi-format support** - handles ZIP (including AES-encrypted), TAR (and compressed variants), and single-file compressors (gzip, bzip2, xz, lzma).
116
+ - **Password cracking** - built-in dictionary attack capabilities for encrypted ZIP files using a curated password list.
117
+ - **Archive repair** - tools to attempt recovery of corrupted archives, including salvage extraction and best-effort repairs.
118
+ - **Cross-platform** - works on Windows, macOS, and Linux with consistent command-line interface.
119
+ - **User-friendly features** - progress indicators, colorized logging, and tab completion for ease of use.
120
+ - **Automation friendly** - supports configuration saving/loading for repeatable tasks and CI environments.
121
+ - **Extensibility** - designed with a modular architecture, allowing for easy integration of new features and support for additional archive formats.
122
+ - **Performance** - optimized for speed and efficiency, making it suitable for both small-scale and large-scale archive operations.
123
+ - **Security** - incorporates best practices for secure handling of sensitive data, including support for encrypted archives and secure password storage.
124
+
125
+ ## Installation
126
+
127
+ ### From PyPI (recommended)
128
+
129
+ ```bash
130
+ python -m pip install zippy
131
+ ```
132
+
133
+ ### From source
134
+
135
+ ```bash
136
+ git clone https://github.com/John0n1/ZIPPY.git
137
+ cd ZIPPY
138
+ python -m pip install .
139
+ ```
140
+
141
+ ### Debian package
142
+
143
+ ```bash
144
+ sudo apt install ./zippy_*.deb
145
+ ```
146
+
147
+ ## Quick start
148
+
149
+
150
+ ### Extract an archive
151
+ ```bash
152
+ zippy --extract backups/site.tar.xz -o ./site
153
+ ```
154
+ ### Create a password-protected ZIP from multiple paths
155
+ ```bash
156
+ zippy --lock secure.zip -f docs,images -p "Tru5ted!"
157
+ ```
158
+ ### List TAR.BZ2 contents
159
+ ```bash
160
+ zippy --list datasets.tar.bz2
161
+ ```
162
+ ### Attempt unlocking with the bundled wordlist
163
+ ```bash
164
+ zippy --unlock encrypted.zip -d password_list.txt --verbose
165
+ ```
166
+ ### Run salvage repair on a damaged tarball
167
+ ```bash
168
+ zippy --repair broken.tar.gz --repair-mode remove_corrupted
169
+ ```
170
+ Run `zippy --help` for the full command reference or `zippy --version` to confirm the installed release.
171
+
172
+ ## Configuration & automation
173
+
174
+ - Use `--save-config <file>` to capture the current flag set (including passwords or dictionary paths if provided).
175
+ - Rehydrate saved flags via `--load-config <file>` for repeatable batch jobs.
176
+ - Disable animations with `--no-animation` for CI environments.
177
+
178
+ ## Logging & colours
179
+
180
+ Logging defaults to concise `INFO` output. Add `--verbose` for `DEBUG` traces. Colour output automatically downgrades in non-interactive terminals, while animations fall back to plain log messages when disabled or redirected. Windows terminals are supported through `colorama`.
181
+
182
+ ## Password dictionary
183
+
184
+ The bundled `password_list.txt` contains hundreds of common credentials, curated for demonstration purposes. The unlock command trims duplicates, ignores comments (`# ...`), and safely handles mixed encodings. Supply your own list with `--dictionary <file>` for larger attacks.
185
+
186
+ ## Contributing
187
+ Pull requests are welcome—please open an issue describing the enhancement before submitting substantial changes.
188
+
189
+ ## License
190
+
191
+ Zippy is released under the MIT License. See `LICENSE` for the full text.
192
+
193
+ ## Disclaimer
194
+
195
+ Zippy is provided "as is" without warranty of any kind. Use at your own risk and keep backups of critical data.
196
+
197
+ **The author is not responsible for any data loss or damage resulting from the use of this software.**
@@ -0,0 +1,20 @@
1
+ colorama>=0.4.6
2
+ python-dotenv>=1.0
3
+ pyzipper>=0.3.6
4
+ patool>=1.12
5
+
6
+ [dev]
7
+ pytest>=7.0
8
+ pytest-cov>=4.0
9
+ black>=23.0
10
+ ruff>=0.1.0
11
+
12
+ [full]
13
+ py7zr>=0.20.0
14
+ rarfile>=4.0
15
+
16
+ [macos]
17
+ py2app>=0.28
18
+
19
+ [windows]
20
+ pyinstaller>=5.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "py-zippy"
7
- version = "1.0.0"
7
+ version = "1.0.1"
8
8
  description = "Archive Utility Toolkit supporting multi-format workflows, password recovery, and repair helpers."
9
9
  readme = "README.md"
10
10
  license = { file = "LICENSE" }
@@ -12,11 +12,15 @@ requires-python = ">=3.9"
12
12
  authors = [
13
13
  { name = "John Hauger Mitander", email = "john@on1.no" },
14
14
  ]
15
- keywords = ["archives", "zip", "tar", "cli", "toolkit"]
15
+ maintainers = [
16
+ { name = "John Hauger Mitander", email = "john@on1.no" },
17
+ ]
18
+ keywords = ["archives", "zip", "tar", "cli", "toolkit", "compression", "encryption", "password-recovery"]
16
19
  classifiers = [
17
20
  "Development Status :: 5 - Production/Stable",
18
21
  "Environment :: Console",
19
22
  "Intended Audience :: System Administrators",
23
+ "Intended Audience :: Developers",
20
24
  "License :: OSI Approved :: MIT License",
21
25
  "Operating System :: OS Independent",
22
26
  "Programming Language :: Python",
@@ -25,6 +29,7 @@ classifiers = [
25
29
  "Programming Language :: Python :: 3.10",
26
30
  "Programming Language :: Python :: 3.11",
27
31
  "Programming Language :: Python :: 3.12",
32
+ "Programming Language :: Python :: 3.13",
28
33
  "Topic :: System :: Archiving",
29
34
  "Topic :: System :: Archiving :: Compression",
30
35
  "Topic :: Utilities",
@@ -36,10 +41,30 @@ dependencies = [
36
41
  "patool>=1.12",
37
42
  ]
38
43
 
44
+ [project.optional-dependencies]
45
+ dev = [
46
+ "pytest>=7.0",
47
+ "pytest-cov>=4.0",
48
+ "black>=23.0",
49
+ "ruff>=0.1.0",
50
+ ]
51
+ full = [
52
+ "py7zr>=0.20.0",
53
+ "rarfile>=4.0",
54
+ ]
55
+ windows = [
56
+ "pyinstaller>=5.0",
57
+ ]
58
+ macos = [
59
+ "py2app>=0.28",
60
+ ]
61
+
39
62
  [project.urls]
40
- Homepage = "https://github.com/John0n1/ZIPPY"
41
- Documentation = "https://github.com/John0n1/ZIPPY#readme"
42
- Issues = "https://github.com/John0n1/ZIPPY/issues"
63
+ Homepage = "https://github.com/John0n1/zippy"
64
+ Documentation = "https://github.com/John0n1/zippy#readme"
65
+ Repository = "https://github.com/John0n1/zippy.git"
66
+ Issues = "https://github.com/John0n1/zippy/issues"
67
+ Changelog = "https://github.com/John0n1/zippy/releases"
43
68
 
44
69
  [project.scripts]
45
70
  zippy = "zippy.cli:main"
@@ -50,3 +75,6 @@ include-package-data = true
50
75
  [tool.setuptools.packages.find]
51
76
  where = ["."]
52
77
  include = ["zippy", "zippy.*"]
78
+
79
+ [tool.setuptools.package-data]
80
+ zippy = ["*.txt", "*.md"]
@@ -5,4 +5,4 @@ This package provides utilities for working with various archive formats
5
5
  including zip, tar, tar.gz, and gzip files.
6
6
  """
7
7
 
8
- __version__ = "1.0.0"
8
+ __version__ = "1.0.1"
py_zippy-1.0.0/PKG-INFO DELETED
@@ -1,149 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: py-zippy
3
- Version: 1.0.0
4
- Summary: Archive Utility Toolkit supporting multi-format workflows, password recovery, and repair helpers.
5
- Author-email: John Hauger Mitander <john@on1.no>
6
- License: MIT License
7
-
8
- Copyright (c) 2025 John H. Mitander
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
-
28
- Project-URL: Homepage, https://github.com/John0n1/ZIPPY
29
- Project-URL: Documentation, https://github.com/John0n1/ZIPPY#readme
30
- Project-URL: Issues, https://github.com/John0n1/ZIPPY/issues
31
- Keywords: archives,zip,tar,cli,toolkit
32
- Classifier: Development Status :: 5 - Production/Stable
33
- Classifier: Environment :: Console
34
- Classifier: Intended Audience :: System Administrators
35
- Classifier: License :: OSI Approved :: MIT License
36
- Classifier: Operating System :: OS Independent
37
- Classifier: Programming Language :: Python
38
- Classifier: Programming Language :: Python :: 3
39
- Classifier: Programming Language :: Python :: 3.9
40
- Classifier: Programming Language :: Python :: 3.10
41
- Classifier: Programming Language :: Python :: 3.11
42
- Classifier: Programming Language :: Python :: 3.12
43
- Classifier: Topic :: System :: Archiving
44
- Classifier: Topic :: System :: Archiving :: Compression
45
- Classifier: Topic :: Utilities
46
- Requires-Python: >=3.9
47
- Description-Content-Type: text/markdown
48
- License-File: LICENSE
49
- Requires-Dist: colorama>=0.4.6
50
- Requires-Dist: python-dotenv>=1.0
51
- Requires-Dist: pyzipper>=0.3.6
52
- Requires-Dist: patool>=1.12
53
- Dynamic: license-file
54
-
55
- <div align="center">
56
-
57
- # Zippy
58
-
59
- **Multi-purpose archive extraction, repair and brute-force toolkit.**
60
-
61
- </div>
62
-
63
- ![PyPI](https://img.shields.io/pypi/v/zippy-toolkit?color=blue&logo=pypi&style=flat-square) ![Python](https://img.shields.io/pypi/pyversions/zippy-toolkit?color=blue&logo=python&style=flat-square) ![License](https://img.shields.io/pypi/l/zippy-toolkit?color=blue&logo=apache&style=flat-square) ![Build](https://img.shields.io/github/actions/workflow/status/John0n1/ZIPPY/ci.yml?branch=main&label=build&logo=github&style=flat-square) ![Coverage](https://img.shields.io/codecov/c/github/John0n1/ZIPPY/main?logo=codecov&style=flat-square)
64
-
65
- ```bash
66
-
67
- - **Broad format coverage** - (`tar`, `tar.gz`, `tar.bz2`, `tar.xz`, `tar.lzma`), (`gzip`, `bz2`, `xz`, `lzma`), `7z`, `rar`, `zstd` and ZIP family (including APK/JAR/WAR/IPA/EAR).
68
- - **Consistent UX** - consistent logging, progress indicators, and tab completion for every command.
69
- - **Security tooling** - create or re-lock encrypted ZIPs, run smart dictionary attacks with the bundled password list, and capture verbose traces when needed.
70
- - **Integrity & repair** - repair, attempt salvage extractions, and perform best-effort recovery for TAR and single-file formats. It grabs whatever it can, even if files look broken or corrupted. This is achieved by scanning the archive for valid headers and footers, and extracting the data in between, then rebuilding the file structure using advanced data pointers and heuristics.
71
-
72
- ## Installation
73
-
74
- ### From PyPI (recommended)
75
-
76
- ```bash
77
- python -m pip install zippy
78
- ```
79
-
80
- ### From source
81
-
82
- ```bash
83
- git clone https://github.com/John0n1/ZIPPY.git
84
- cd ZIPPY
85
- python -m pip install .
86
-
87
- ### Debian package
88
-
89
- ```bash
90
- sudo apt install ./zippy_*.deb
91
- ```
92
-
93
- ## Quick start
94
-
95
- ```bash
96
- # Extract an archive
97
- zippy --extract backups/site.tar.xz -o ./site
98
-
99
- # Create a password-protected ZIP from multiple paths
100
- zippy --lock secure.zip -f docs,images -p "Tru5ted!"
101
-
102
- # List TAR.BZ2 contents
103
- zippy --list datasets.tar.bz2
104
-
105
- # Attempt unlocking with the bundled wordlist
106
- zippy --unlock encrypted.zip -d password_list.txt --verbose
107
-
108
- # Run salvage repair on a damaged tarball
109
- zippy --repair broken.tar.gz --repair-mode remove_corrupted
110
- ```
111
-
112
- Run `zippy --help` for the full command reference or `zippy --version` to confirm the installed release.
113
-
114
- ## Supported archive formats
115
-
116
- | Family | Types |
117
- | ------ | ----- |
118
- | ZIP | `zip` (with optional password protection) |
119
- | TAR | `tar`, `tar.gz`, `tar.bz2`, `tar.xz`, `tar.lzma`, `.tgz`, `.tbz`, `.txz`, `.tlz` |
120
- | Single-file | `gzip` (`.gz`), `bz2` (`.bz2`), `xz` (`.xz`), `lzma` (`.lzma`) |
121
-
122
- Unsupported formats (e.g. 7z, rar, zstd) will raise a friendly error instructing you to choose a supported type.
123
-
124
- ## Configuration & automation
125
-
126
- - Use `--save-config <file>` to capture the current flag set (including passwords or dictionary paths if provided).
127
- - Rehydrate saved flags via `--load-config <file>` for repeatable batch jobs.
128
- - Disable animations with `--no-animation` for CI environments.
129
-
130
- ## Logging & colours
131
-
132
- Logging defaults to concise `INFO` output. Add `--verbose` for `DEBUG` traces. Colour output automatically downgrades in non-interactive terminals, while animations fall back to plain log messages when disabled or redirected. Windows terminals are supported through `colorama`.
133
-
134
- ## Password dictionary
135
-
136
- The bundled `password_list.txt` contains hundreds of common credentials, curated for demonstration purposes. The unlock command trims duplicates, ignores comments (`# ...`), and safely handles mixed encodings. Supply your own list with `--dictionary <file>` for larger attacks.
137
-
138
- ## Contributing
139
- Pull requests are welcome—please open an issue describing the enhancement before submitting substantial changes.
140
-
141
- ## License
142
-
143
- Zippy is released under the MIT License. See `LICENSE` for the full text.
144
-
145
- ## Disclaimer
146
-
147
- Zippy is provided "as is" without warranty of any kind. Use at your own risk and keep backups of critical data.
148
-
149
- **The author is not responsible for any data loss or damage resulting from the use of this software.**
py_zippy-1.0.0/README.md DELETED
@@ -1,95 +0,0 @@
1
- <div align="center">
2
-
3
- # Zippy
4
-
5
- **Multi-purpose archive extraction, repair and brute-force toolkit.**
6
-
7
- </div>
8
-
9
- ![PyPI](https://img.shields.io/pypi/v/zippy-toolkit?color=blue&logo=pypi&style=flat-square) ![Python](https://img.shields.io/pypi/pyversions/zippy-toolkit?color=blue&logo=python&style=flat-square) ![License](https://img.shields.io/pypi/l/zippy-toolkit?color=blue&logo=apache&style=flat-square) ![Build](https://img.shields.io/github/actions/workflow/status/John0n1/ZIPPY/ci.yml?branch=main&label=build&logo=github&style=flat-square) ![Coverage](https://img.shields.io/codecov/c/github/John0n1/ZIPPY/main?logo=codecov&style=flat-square)
10
-
11
- ```bash
12
-
13
- - **Broad format coverage** - (`tar`, `tar.gz`, `tar.bz2`, `tar.xz`, `tar.lzma`), (`gzip`, `bz2`, `xz`, `lzma`), `7z`, `rar`, `zstd` and ZIP family (including APK/JAR/WAR/IPA/EAR).
14
- - **Consistent UX** - consistent logging, progress indicators, and tab completion for every command.
15
- - **Security tooling** - create or re-lock encrypted ZIPs, run smart dictionary attacks with the bundled password list, and capture verbose traces when needed.
16
- - **Integrity & repair** - repair, attempt salvage extractions, and perform best-effort recovery for TAR and single-file formats. It grabs whatever it can, even if files look broken or corrupted. This is achieved by scanning the archive for valid headers and footers, and extracting the data in between, then rebuilding the file structure using advanced data pointers and heuristics.
17
-
18
- ## Installation
19
-
20
- ### From PyPI (recommended)
21
-
22
- ```bash
23
- python -m pip install zippy
24
- ```
25
-
26
- ### From source
27
-
28
- ```bash
29
- git clone https://github.com/John0n1/ZIPPY.git
30
- cd ZIPPY
31
- python -m pip install .
32
-
33
- ### Debian package
34
-
35
- ```bash
36
- sudo apt install ./zippy_*.deb
37
- ```
38
-
39
- ## Quick start
40
-
41
- ```bash
42
- # Extract an archive
43
- zippy --extract backups/site.tar.xz -o ./site
44
-
45
- # Create a password-protected ZIP from multiple paths
46
- zippy --lock secure.zip -f docs,images -p "Tru5ted!"
47
-
48
- # List TAR.BZ2 contents
49
- zippy --list datasets.tar.bz2
50
-
51
- # Attempt unlocking with the bundled wordlist
52
- zippy --unlock encrypted.zip -d password_list.txt --verbose
53
-
54
- # Run salvage repair on a damaged tarball
55
- zippy --repair broken.tar.gz --repair-mode remove_corrupted
56
- ```
57
-
58
- Run `zippy --help` for the full command reference or `zippy --version` to confirm the installed release.
59
-
60
- ## Supported archive formats
61
-
62
- | Family | Types |
63
- | ------ | ----- |
64
- | ZIP | `zip` (with optional password protection) |
65
- | TAR | `tar`, `tar.gz`, `tar.bz2`, `tar.xz`, `tar.lzma`, `.tgz`, `.tbz`, `.txz`, `.tlz` |
66
- | Single-file | `gzip` (`.gz`), `bz2` (`.bz2`), `xz` (`.xz`), `lzma` (`.lzma`) |
67
-
68
- Unsupported formats (e.g. 7z, rar, zstd) will raise a friendly error instructing you to choose a supported type.
69
-
70
- ## Configuration & automation
71
-
72
- - Use `--save-config <file>` to capture the current flag set (including passwords or dictionary paths if provided).
73
- - Rehydrate saved flags via `--load-config <file>` for repeatable batch jobs.
74
- - Disable animations with `--no-animation` for CI environments.
75
-
76
- ## Logging & colours
77
-
78
- Logging defaults to concise `INFO` output. Add `--verbose` for `DEBUG` traces. Colour output automatically downgrades in non-interactive terminals, while animations fall back to plain log messages when disabled or redirected. Windows terminals are supported through `colorama`.
79
-
80
- ## Password dictionary
81
-
82
- The bundled `password_list.txt` contains hundreds of common credentials, curated for demonstration purposes. The unlock command trims duplicates, ignores comments (`# ...`), and safely handles mixed encodings. Supply your own list with `--dictionary <file>` for larger attacks.
83
-
84
- ## Contributing
85
- Pull requests are welcome—please open an issue describing the enhancement before submitting substantial changes.
86
-
87
- ## License
88
-
89
- Zippy is released under the MIT License. See `LICENSE` for the full text.
90
-
91
- ## Disclaimer
92
-
93
- Zippy is provided "as is" without warranty of any kind. Use at your own risk and keep backups of critical data.
94
-
95
- **The author is not responsible for any data loss or damage resulting from the use of this software.**
@@ -1,149 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: py-zippy
3
- Version: 1.0.0
4
- Summary: Archive Utility Toolkit supporting multi-format workflows, password recovery, and repair helpers.
5
- Author-email: John Hauger Mitander <john@on1.no>
6
- License: MIT License
7
-
8
- Copyright (c) 2025 John H. Mitander
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
-
28
- Project-URL: Homepage, https://github.com/John0n1/ZIPPY
29
- Project-URL: Documentation, https://github.com/John0n1/ZIPPY#readme
30
- Project-URL: Issues, https://github.com/John0n1/ZIPPY/issues
31
- Keywords: archives,zip,tar,cli,toolkit
32
- Classifier: Development Status :: 5 - Production/Stable
33
- Classifier: Environment :: Console
34
- Classifier: Intended Audience :: System Administrators
35
- Classifier: License :: OSI Approved :: MIT License
36
- Classifier: Operating System :: OS Independent
37
- Classifier: Programming Language :: Python
38
- Classifier: Programming Language :: Python :: 3
39
- Classifier: Programming Language :: Python :: 3.9
40
- Classifier: Programming Language :: Python :: 3.10
41
- Classifier: Programming Language :: Python :: 3.11
42
- Classifier: Programming Language :: Python :: 3.12
43
- Classifier: Topic :: System :: Archiving
44
- Classifier: Topic :: System :: Archiving :: Compression
45
- Classifier: Topic :: Utilities
46
- Requires-Python: >=3.9
47
- Description-Content-Type: text/markdown
48
- License-File: LICENSE
49
- Requires-Dist: colorama>=0.4.6
50
- Requires-Dist: python-dotenv>=1.0
51
- Requires-Dist: pyzipper>=0.3.6
52
- Requires-Dist: patool>=1.12
53
- Dynamic: license-file
54
-
55
- <div align="center">
56
-
57
- # Zippy
58
-
59
- **Multi-purpose archive extraction, repair and brute-force toolkit.**
60
-
61
- </div>
62
-
63
- ![PyPI](https://img.shields.io/pypi/v/zippy-toolkit?color=blue&logo=pypi&style=flat-square) ![Python](https://img.shields.io/pypi/pyversions/zippy-toolkit?color=blue&logo=python&style=flat-square) ![License](https://img.shields.io/pypi/l/zippy-toolkit?color=blue&logo=apache&style=flat-square) ![Build](https://img.shields.io/github/actions/workflow/status/John0n1/ZIPPY/ci.yml?branch=main&label=build&logo=github&style=flat-square) ![Coverage](https://img.shields.io/codecov/c/github/John0n1/ZIPPY/main?logo=codecov&style=flat-square)
64
-
65
- ```bash
66
-
67
- - **Broad format coverage** - (`tar`, `tar.gz`, `tar.bz2`, `tar.xz`, `tar.lzma`), (`gzip`, `bz2`, `xz`, `lzma`), `7z`, `rar`, `zstd` and ZIP family (including APK/JAR/WAR/IPA/EAR).
68
- - **Consistent UX** - consistent logging, progress indicators, and tab completion for every command.
69
- - **Security tooling** - create or re-lock encrypted ZIPs, run smart dictionary attacks with the bundled password list, and capture verbose traces when needed.
70
- - **Integrity & repair** - repair, attempt salvage extractions, and perform best-effort recovery for TAR and single-file formats. It grabs whatever it can, even if files look broken or corrupted. This is achieved by scanning the archive for valid headers and footers, and extracting the data in between, then rebuilding the file structure using advanced data pointers and heuristics.
71
-
72
- ## Installation
73
-
74
- ### From PyPI (recommended)
75
-
76
- ```bash
77
- python -m pip install zippy
78
- ```
79
-
80
- ### From source
81
-
82
- ```bash
83
- git clone https://github.com/John0n1/ZIPPY.git
84
- cd ZIPPY
85
- python -m pip install .
86
-
87
- ### Debian package
88
-
89
- ```bash
90
- sudo apt install ./zippy_*.deb
91
- ```
92
-
93
- ## Quick start
94
-
95
- ```bash
96
- # Extract an archive
97
- zippy --extract backups/site.tar.xz -o ./site
98
-
99
- # Create a password-protected ZIP from multiple paths
100
- zippy --lock secure.zip -f docs,images -p "Tru5ted!"
101
-
102
- # List TAR.BZ2 contents
103
- zippy --list datasets.tar.bz2
104
-
105
- # Attempt unlocking with the bundled wordlist
106
- zippy --unlock encrypted.zip -d password_list.txt --verbose
107
-
108
- # Run salvage repair on a damaged tarball
109
- zippy --repair broken.tar.gz --repair-mode remove_corrupted
110
- ```
111
-
112
- Run `zippy --help` for the full command reference or `zippy --version` to confirm the installed release.
113
-
114
- ## Supported archive formats
115
-
116
- | Family | Types |
117
- | ------ | ----- |
118
- | ZIP | `zip` (with optional password protection) |
119
- | TAR | `tar`, `tar.gz`, `tar.bz2`, `tar.xz`, `tar.lzma`, `.tgz`, `.tbz`, `.txz`, `.tlz` |
120
- | Single-file | `gzip` (`.gz`), `bz2` (`.bz2`), `xz` (`.xz`), `lzma` (`.lzma`) |
121
-
122
- Unsupported formats (e.g. 7z, rar, zstd) will raise a friendly error instructing you to choose a supported type.
123
-
124
- ## Configuration & automation
125
-
126
- - Use `--save-config <file>` to capture the current flag set (including passwords or dictionary paths if provided).
127
- - Rehydrate saved flags via `--load-config <file>` for repeatable batch jobs.
128
- - Disable animations with `--no-animation` for CI environments.
129
-
130
- ## Logging & colours
131
-
132
- Logging defaults to concise `INFO` output. Add `--verbose` for `DEBUG` traces. Colour output automatically downgrades in non-interactive terminals, while animations fall back to plain log messages when disabled or redirected. Windows terminals are supported through `colorama`.
133
-
134
- ## Password dictionary
135
-
136
- The bundled `password_list.txt` contains hundreds of common credentials, curated for demonstration purposes. The unlock command trims duplicates, ignores comments (`# ...`), and safely handles mixed encodings. Supply your own list with `--dictionary <file>` for larger attacks.
137
-
138
- ## Contributing
139
- Pull requests are welcome—please open an issue describing the enhancement before submitting substantial changes.
140
-
141
- ## License
142
-
143
- Zippy is released under the MIT License. See `LICENSE` for the full text.
144
-
145
- ## Disclaimer
146
-
147
- Zippy is provided "as is" without warranty of any kind. Use at your own risk and keep backups of critical data.
148
-
149
- **The author is not responsible for any data loss or damage resulting from the use of this software.**
@@ -1,4 +0,0 @@
1
- colorama>=0.4.6
2
- python-dotenv>=1.0
3
- pyzipper>=0.3.6
4
- patool>=1.12
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes