{"id":25608243,"url":"https://github.com/dhondta/recursive-compression","last_synced_at":"2025-02-21T20:19:54.080Z","repository":{"id":47135928,"uuid":"181432768","full_name":"dhondta/recursive-compression","owner":"dhondta","description":"Tinyscript tool for recursively (de)compressing nested archives using multiple algorithms (bzip2, rar, lzma, ...)","archived":false,"fork":false,"pushed_at":"2023-12-03T19:31:40.000Z","size":67,"stargazers_count":12,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-12T09:57:28.428Z","etag":null,"topics":["7z","arj","bzip2","compression","ctf-tools","decompression","gzip","lzma","python","rar","tar","tinyscript","tool","xz","zip"],"latest_commit_sha":null,"homepage":"","language":"Python","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/dhondta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-15T07:15:26.000Z","updated_at":"2023-02-13T13:55:01.000Z","dependencies_parsed_at":"2022-07-21T01:02:21.439Z","dependency_job_id":null,"html_url":"https://github.com/dhondta/recursive-compression","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhondta%2Frecursive-compression","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhondta%2Frecursive-compression/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhondta%2Frecursive-compression/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhondta%2Frecursive-compression/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhondta","download_url":"https://codeload.github.com/dhondta/recursive-compression/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240080258,"owners_count":19744844,"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","arj","bzip2","compression","ctf-tools","decompression","gzip","lzma","python","rar","tar","tinyscript","tool","xz","zip"],"created_at":"2025-02-21T20:19:53.630Z","updated_at":"2025-02-21T20:19:54.071Z","avatar_url":"https://github.com/dhondta.png","language":"Python","readme":"[![PyPi](https://img.shields.io/pypi/v/recursive-compression.svg)](https://pypi.python.org/pypi/recursive-compression/)\r\n[![Python Versions](https://img.shields.io/pypi/pyversions/recursive-compression.svg)](https://pypi.python.org/pypi/recursive-compression/)\r\n[![Platform](https://img.shields.io/badge/platform-linux-yellow.svg)](https://pypi.python.org/pypi/recursive-compression/)\r\n[![Known Vulnerabilities](https://snyk.io/test/github/dhondta/recursive-compression/badge.svg?targetFile=requirements.txt)](https://snyk.io/test/github/dhondta/recursive-compression?targetFile=requirements.txt)\r\n[![License](https://img.shields.io/pypi/l/recursive-compression.svg)](https://pypi.python.org/pypi/recursive-compression/)\r\n\r\n\r\n## Introduction\r\n\r\nThis tool relies on [Tinyscript](https://github.com/dhondta/tinyscript/) and allows to recursively (de)compress nested archives according to various decompression algorithms implemented in [Patool](https://github.com/wummel/patool).\r\n\r\n\r\n## Installation\r\n\r\n```session\r\n$ pip install recursive-compression\r\n```\r\n\r\n\u003e **Behind a proxy ?**\r\n\u003e \r\n\u003e Do not forget to add option `--proxy=http://[user]:[pwd]@[host]:[port]` to your pip command.\r\n\r\n\r\n## Quick Start\r\n\r\n### Compression\r\n\r\n```session\r\n$ rec-comp -h\r\nusage: rec-comp [-c CHARSET] [-d] [-n NCHARS] [-r ROUNDS] [-h] [-p] [--stats]\r\n                [--timings] [-v]\r\n                files [files ...]\r\n\r\nRecComp v3.0\r\nAuthor   : Alexandre D'Hondt\r\nCopyright: © 2019 A. D'Hondt\r\nLicense  : GNU Affero General Public License v3.0\r\n\r\nThis tool allows to recursively compress an archive relying on Patool, a Python\r\n library supporting various archive formats.\r\n\r\nNote: Password-protected compression is not supported.\r\n\r\npositional arguments:\r\n  files                 files to be archived\r\n\r\noptional arguments:\r\n  -c CHARSET            character set of random archive name (default: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)\r\n  -d                    delete input files (default: False)\r\n  -f FORMATS            compression algorithms (default: all)\r\n  -n NCHARS             length of random archive name (default: 8)\r\n  -r ROUNDS, --rounds ROUNDS\r\n                        number of compression rounds (default: 10)\r\n  --reverse             reverse byte order (default: False)\r\n\r\ndata options:\r\n  --data DATA           data to be embedded (default: None)\r\n  --chunks CHUNKS       number of chunks the data should be split in (default: 10)\r\n\r\nextra arguments:\r\n  -h, --help            show this help message and exit\r\n  -p, --progress        progress mode (default: False)\r\n  -v, --verbose         verbose mode (default: False)\r\n\r\ntiming arguments:\r\n  --stats               display execution time stats at exit (default: False)\r\n  --timings             display time stats during execution (default: False)\r\n\r\nUsage examples:\r\n  rec-comp file1 file2 file3 -r 10\r\n  rec-comp file -c abcd -n 10\r\n  rec-comp -p\r\n\r\n```\r\n\r\n```session\r\n$ rec-comp file1 file2 file3 -r 10 -p\r\n100%|██████████| 10/10 [00:05\u003c00:00,  1.94it/s]\r\n12:34:56 [INFO] Rounds:  10\r\n12:34:56 [INFO] Archive: Vdpxp8Qy\r\n\r\n```\r\n\r\n\r\n### Decompression\r\n\r\n```session\r\n$ rec-decomp -h\r\nusage: rec-decomp [-d] [-p] [-h] [--stats] [--timings] [-v] archive\r\n\r\nRecDecomp v3.0\r\nAuthor   : Alexandre D'Hondt\r\nCopyright: © 2019 A. D'Hondt\r\nLicense  : GNU Affero General Public License v3.0\r\nTraining : ZSIS CTF - Trivia - Shining (4 points)\r\n\r\nThis tool allows to recursively decompress an archive relying on Patool, a\r\n Python library supporting various archive formats.\r\n\r\nNote: Password-protected compression is not supported yet. If the tool freezes\r\n       while decompressing, it may be necessary to press enter to submit a blank\r\n       password, which will stop decompression.\r\n\r\npositional arguments:\r\n  archive        input archive\r\n\r\noptional arguments:\r\n  -d             delete input archive (default: False)\r\n  -p             print resulting file, if possible (default: False)\r\n\r\nextra arguments:\r\n  -h, --help     show this help message and exit\r\n  -v, --verbose  verbose mode (default: False)\r\n\r\ntiming arguments:\r\n  --stats        display execution time stats at exit (default: False)\r\n  --timings      display time stats during execution (default: False)\r\n\r\nUsage examples:\r\n  rec-decomp archive.zip\r\n  rec-decomp archive.zip -d\r\n\r\n```\r\n\r\n```session\r\n$ rec-decomp Vdpxp8Qy \r\n12:34:56 [INFO] Rounds: 10\r\n12:34:56 [INFO] Files :\r\n- file1 (8d5e08e1bbc49f59b208e0288e220ac0fc336ac0779852cb823c910ae03b5bc4)\r\n- file2 (9f07ec2f89cbec2696574d26238a2d876cfe1249909cc5de2f171ae9ede3e475)\r\n- file3 (60bf2a298af8b71b7fcc0e726c4f75d78c73949c9562cf0c1a2bbeadeeca8ee4)\r\n\r\n```\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhondta%2Frecursive-compression","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhondta%2Frecursive-compression","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhondta%2Frecursive-compression/lists"}