https://github.com/kartikmehta8/rust-compression
This Rust program compresses a file using gzip compression. It takes two command line arguments: the source file and the destination file.
https://github.com/kartikmehta8/rust-compression
cli-app gzip-compression rust
Last synced: about 2 months ago
JSON representation
This Rust program compresses a file using gzip compression. It takes two command line arguments: the source file and the destination file.
- Host: GitHub
- URL: https://github.com/kartikmehta8/rust-compression
- Owner: kartikmehta8
- Created: 2024-06-01T07:03:33.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-06-01T07:03:50.000Z (12 months ago)
- Last Synced: 2025-03-28T03:58:43.369Z (about 2 months ago)
- Topics: cli-app, gzip-compression, rust
- Language: Rust
- Homepage:
- Size: 1000 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gzip Compression Tool
This Rust program compresses a file using gzip compression. It takes two command line arguments: the source file and the destination file.
## Usage
```bash
cargo run
```## Example
```bash
cargo run input.txt output.gz
```## Code
```rust
extern crate flate2;use flate2::write::GzEncoder;
use flate2::Compression;
use std::env::args;
use std::fs::File;
use std::io::copy;
use std::io::BufReader;
use std::time::Instant;fn main() {
if args().len() != 3 {
eprintln!("Usage: {} ", args().nth(0).unwrap());
return;
}let mut input = BufReader::new(File::open(args().nth(1).unwrap()).unwrap());
let output = File::create(args().nth(2).unwrap()).unwrap();
let mut encoder = GzEncoder::new(output, Compression::default());
let start = Instant::now();copy(&mut input, &mut encoder).unwrap();
println!(
"Compressed {} bytes in {} ms",
input.get_ref().metadata().unwrap().len(),
start.elapsed().as_millis(),
);
}
```