https://github.com/blagojeblagojevic/compresion
File Compression and Decompression with FastLZ
https://github.com/blagojeblagojevic/compresion
compression fastlz lz77 parrallel-computing
Last synced: about 1 year ago
JSON representation
File Compression and Decompression with FastLZ
- Host: GitHub
- URL: https://github.com/blagojeblagojevic/compresion
- Owner: BlagojeBlagojevic
- Created: 2024-04-05T14:03:25.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T10:25:16.000Z (about 2 years ago)
- Last Synced: 2025-02-14T06:36:43.069Z (over 1 year ago)
- Topics: compression, fastlz, lz77, parrallel-computing
- Language: C
- Homepage:
- Size: 2.78 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# File Compression and Decompression with FastLZ
This C program provides functionality for compressing and decompressing files using the FastLZ compression algorithm. The program supports multithreaded compression and decompression to utilize multiple CPU cores effectively.
## Features
- **Compression**: Compress single or multiple files into a compressed format using FastLZ.
- **Decompression**: Decompress previously compressed files to retrieve the original content.
- **Multithreading**: Utilizes OpenMP for parallelizing compression and decompression tasks across multiple CPU cores.
- **Dynamic Memory Management**: Efficiently manages memory allocation and deallocation for handling large files.
## Requirements
- C Compiler
- OpenMP library
- FastLZ library
## Usage
### Compression
To compress a file or multiple files, follow these steps:
1. Compile the program using a C compiler.
2. Run the compiled executable.
3. Choose the compression option.
4. Input the name of the file(s) you want to compress.
5. Input the name for the compressed file(s).
### Decompression
To decompress previously compressed files, follow these steps:
1. Compile the program using a C compiler.
2. Run the compiled executable.
3. Choose the decompression option.
4. Input the name of the compressed file(s).
5. Input the name for the decompressed file(s).
## Example
```bash
$ ./file_compressor
What do you want to do? (1 - Compression, 2 - Decompression, any other key to exit)
> 1
Input name of file:
> input_file.txt
Input name of file you want to save as:
> compressed_file
```
```bash
$ ./file_compressor
What do you want to do? (1 - Compression, 2 - Decompression, any other key to exit)
> 2
Input name of file:
> compressed_file
Input name of file you want to save as:
> decompressed_file.txt
```
## License
This program is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Credits
This program uses the FastLZ compression library. See the [FastLZ GitHub repository](https://github.com/ariya/fastlz) for more information.