Skip to content

NisarLDev/File_Compressor_Rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File_Compressor_Rust

This is a firt version of the programme

The programme compress the files with gzip algorithm based on the other algorithm named LZ77 (Lempel-Ziv 77).

For more information read this pages:

1 - https://www.gzip.org/

2 - https://www.dcc.uchile.cl/~skreft/downloads/pdf/KN09.pdf

3 - https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wusp/fb98aa28-5cd7-407f-8869-a6cef1ff1ccb

4 - https://cs.stanford.edu/people/eroberts/courses/soco/projects/data-compression/lossless/lz77/example.htm

5 - https://cs.stanford.edu/people/eroberts/courses/soco/projects/data-compression/lossless/lz77/concept.htm

6 - http://gedlc.ulpgc.es/docencia/seminarios/cd/Diccionarios/tsld011.htm

7 - http://www.gedlc.ulpgc.es/docencia/seminarios/cd/Diccionarios/tsld015.htm

8 - http://www.gedlc.ulpgc.es/docencia/seminarios/cd/Diccionarios/tsld016.htm

9 - https://courses.cs.duke.edu/spring11/cps296.3/compression4.pdf

10 - https://devtuto.io/understanding-the-lz77-compression-algorithm/

Instructions for compilling binary and utilization of the programme:

1 - Clone the repository with the next command: git clone https://github.com/NisarLDev/File_Compressor_Rust

2 - Execute the next command: "cargo run" (without braquets) into the folder of the project in order of compilling the programme.

For more information about Rust and the process of the instalation, look next page:

1 - https://www.rust-lang.org/learn/get-started

Instructions for use of this program

1 - Enter on a terminal of commands system's the location of the binary executable file.

2 - Enter on a terminal of commands system's the location of the file you want to compress.

3 - Enter on a terminal of commands system's the name the file resultant of the compression process with the extension file name .gz.

4 - Press the Enter key.

Bibliography:

1 - https://invidious.privacydev.net/watch?v=cSD3HzkvQoI

2 - https://github.com/AkhilSharma90/Rust-Compress

3 - Fixing unused imports · Issue #56 · rust-lang/rustfix rust-lang/rustfix#56

4 - Add auto-fixable suggestion to remove unused imports · Issue #47888 · rust-lang/rust rust-lang/rust#47888

5 - Compile error · Issue #205 · rust-lang/flate2-rs rust-lang/flate2-rs#205

6 - Flate2 - crates.io: Rust Package Registry https://crates.io/crates/flate2

7 - Rust-lang/flate2-rs: DEFLATE, gzip, and zlib bindings for Rust https://github.com/rust-lang/flate2-rs/tree/main

8 - Flate2 - Rust https://docs.rs/flate2/1.0.26/flate2/

9 - Zstd — Rust compression library // Lib.rs https://lib.rs/crates/zstd

10 - Flate2-rs: DEFLATE, Gzip, and Zlib Bindings for Rust https://morioh.com/p/89c98a488a40

11 - GzEncoder in flate2::write - Rust https://cseweb.ucsd.edu/classes/sp22/cse223B-a/tribbler/flate2/write/struct.GzEncoder.html

12 - GzEncoder in flate2::bufread - Rust https://docs.rs/flate2/latest/flate2/bufread/struct.GzEncoder.html

13 - flate2::write::GzEncoder - Rust https://huonw.github.io/tz-search/flate2/write/struct.GzEncoder.html

14 - write::GzEncoder doesn't encode a huge buffer · Issue #271 · rust-lang/flate2-rs rust-lang/flate2-rs#271

15 - BufRead in std::io - Rust https://doc.rust-lang.org/std/io/trait.BufRead.html

16 - Day 5: Supply Stacks · Issue #6 · simonw/advent-of-code-2022-in-rust simonw/advent-of-code-2022-in-rust#6

17 - Customizing Builds with Release Profiles - The Rust Programming Language https://doc.rust-lang.org/book/ch14-01-release-profiles.html

18 - La diferencia entre los algoritmos de compresión Brotli y Gzip para acelerar tu sitio web https://www.siteground.es/blog/diferencia-algoritmos-compresion-brotli-gzip-acelerar-web/

19 - https://rust-lang-nursery.github.io/rust-cookbook/