https://github.com/exsandebest/archiver
Archiver based on the Huffman algorithm in Qt
https://github.com/exsandebest/archiver
archiver compression compression-algorithm compressor decoder decoding encoder encoding huffman huffman-algorithm huffman-coding huffman-compression-algorithm huffman-compressor huffman-tree qt zip
Last synced: 2 months ago
JSON representation
Archiver based on the Huffman algorithm in Qt
- Host: GitHub
- URL: https://github.com/exsandebest/archiver
- Owner: exsandebest
- License: mit
- Created: 2019-12-05T18:19:59.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-10-27T08:06:59.000Z (over 1 year ago)
- Last Synced: 2025-01-11T18:09:29.664Z (4 months ago)
- Topics: archiver, compression, compression-algorithm, compressor, decoder, decoding, encoder, encoding, huffman, huffman-algorithm, huffman-coding, huffman-compression-algorithm, huffman-compressor, huffman-tree, qt, zip
- Language: C++
- Homepage:
- Size: 136 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Archiver
A simple archiving Qt application based on the Huffman algorithm
## Features
* Simple Qt interface
* Maximum length of file name - 256 symbols (with extension)
* Russian letters are **not supported** in the file name
* Maximum size of file - 1 GByte
* Archived file has `.xxx` extension
## Structure
* 1 Byte - Length of file name (in Bytes) - **N**
* **N** Bytes - File name
* 2 Bytes - Number of different Bytes (symbols) in the file (0-256) - **K**
* **K** blocks (Huffman tree):
* 1 Byte - Byte (symbol)
* 1 Byte - Encoding length of this Byte (symbol) (in Bits) - **S**
* ⌈**S**/8⌉ Bytes - Encoding of this Byte (symbol)
* 8 Bytes - Length of encoded data (in Bits) - **P**
* ⌈**P**/8⌉ Bytes - Encoded data
## Interface - example

## Authors
* [exsandebest](https://github.com/exsandebest) ([Repository](https://github.com/exsandebest/Archiver))
* [klimkomx](https://github.com/klimkomx) ([Repository](https://github.com/klimkomx/HuffmanArchivator))
* [hensuto](https://gitlab.com/hensuto) ([Repository](https://gitlab.com/hensuto/huffman-archiver))