High Performance SBWT is a Python-based project that implements a cryptographic compression pipeline using advanced algorithms such as SBWT, Huffman coding, Arithmetic coding, LZW, and BZip2. It provides tools for compressing and encrypting data with a modular and extensible approach.
-
User-Friendly: Command-line interface for easy usage and configuration.
-
Benchmarking Tools: Comes with utilities for testing and comparing performance.
-
Pipeline Integration: Implements SBWT-based cryptographic compression pipeline.
-
Multi-Algorithm Support: Includes Huffman, Arithmetic coding, BZip2, and LZW.
Ensure you have the following installed:
- Python 3.8+: Download it from python.org.
- Install Dependencies: Install required packages from requirements.txt:
pip install -r requirements.txt
- Verify Installation: Check the help options for the main scripts:
python3 hpswbt.py -h
python3 testing.py -h
Ensure you have sufficient disk space for benchmarking large datasets.
- Compress and Encrypt Run the main script with desired options:
python3 hpswbt.py compress -i input -m mode -k key [-l log]
python3 hpswbt.py decompress -i input -o output -k key [-l log]
- Benchmarking Use the testing.py script to evaluate performance:
python3 testing.py -i input -m mode -k key [-l log]
-
hpswbt.py: Implements the cryptographic compression pipeline. Options for selecting algorithms: huffman, arithmetic, lzw, bzip2.
-
testing.py: Provides benchmarking utilities for testing performance and compression ratios.
-
Other Modules: Additional modules are available separately for modular usage.
Huffman coding is a lossless data compression algorithm.
Arithmetic coding provides high compression ratios for specific data types.
BZip2 is a block-sorting compression algorithm for high efficiency.
LZW is a simple and fast algorithm widely used in file formats like GIF.
SBWT is a method used for data transformations in the pipeline.
This project is licensed under the GNU General Public License v3.0.
GNU General Public License v3.0
Contributors:
Project Manager:
For support, email antonio.garofalo125@gmail.com or contact the project contributors.
See the documentation project here.