Skip to content

A Swiss Army Knife for handling compressed data in Rust

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

OSSystems/compress-tools-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9a7c715 · Feb 23, 2025
Jun 24, 2024
Mar 20, 2023
Aug 2, 2022
Feb 23, 2025
Jul 16, 2024
Mar 19, 2022
Feb 14, 2022
Jul 28, 2021
Jul 16, 2024
Jul 16, 2024
Apr 25, 2019
Feb 12, 2021
Nov 10, 2022
Apr 29, 2020
Jun 24, 2024
Jun 24, 2024
Nov 20, 2022
Jul 24, 2022

Repository files navigation

Coverage Status Documentation

compress-tools

The compress-tools crate aims to provide a convenient and easy to use set of methods which builds on top of libarchive exposing a small set of it’s functionalities.

Platform Build Status
Linux - x86_64 build status
macOS - x86_64 build status
Windows - x86_64 build status

Dependencies

You must have libarchive, 3.2.0 or newer, properly installed on your system in order to use this. If building on *nix and Windows GNU systems, pkg-config is used to locate the libarchive; on Windows MSVC, vcpkg will be used to locating the libarchive.

The minimum supported Rust version is 1.59.

Features

This crate is capable of extracting:

  • compressed files
  • archive files
  • single file from an archive

For example, to extract an archive file it is as simple as:

use compress_tools::*;
use std::fs::File;
use std::path::Path;

let mut source = File::open("tree.tar.gz")?;
let dest = Path::new("/tmp/dest");

uncompress_archive(&mut source, &dest, Ownership::Preserve)?;

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.