Skip to content
/ paxit Public

Paxit is a flexible Rust library for compressing and decompressing files using various algorithms, with a modular design that allows easy addition of new compression formats.

License

Notifications You must be signed in to change notification settings

roquess/paxit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paxit

Paxit is a flexible Rust library for compressing and decompressing files using various algorithms, with a modular design that allows easy addition of new compression formats.

Features

  • Supports multiple compression formats: "bmp", "dds", "farbfeld", "gif", "hdr", "ico", "jpg", "jpeg", "xz", "gz", "png", "pbm", "pgm", "ppm", "tar", "tga", "tiff", "tif", "webp", "zip", "zst".
  • Modular design for easy addition of new compression algorithms.
  • Simple command-line interface for compressing and decompressing files.

Installation

To use Paxit, add the following to your Cargo.toml:

[dependencies]
paxit = "0.1.4"

Usage

Command-Line Interface Paxit provides a simple command-line interface for compressing and decompressing files.

Compression

To compress files, use the following command:

paxit compress <output_file> <input_files...>

For example, to compress file1.txt and file2.txt into archive.zip:

paxit compress archive.zip file1.txt file2.txt

Decompression

To decompress a file, use the following command:

paxit uncompress <input_file> <output_directory>

For example, to decompress archive.zip into the output directory:

paxit uncompress archive.zip output

Library Usage

You can also use Paxit as a library in your Rust projects. Here is an example of how to use it:

use paxit::algorithms::{Zip, Tar, Gunzip};
use paxit::pack::Pack;
use std::path::Path;

fn main() {
    let files = vec![Path::new("file1.txt"), Path::new("file2.txt")];
    let output = Path::new("archive.zip");

    let compressor = Zip;
    compressor.pack(files, output).unwrap();
}

Adding New Compression Algorithms

To add a new compression algorithm, simply create a new file in the algorithms directory and implement the Pack trait. The library will automatically detect and use the new algorithm.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

You can update the mod.rs file by running :

cargo r --bin gen_mod

License

This project is licensed under the MIT License.

About

Paxit is a flexible Rust library for compressing and decompressing files using various algorithms, with a modular design that allows easy addition of new compression formats.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages