Crate compress_tools
source ·Expand description
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.
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)?;
Modules
- Generic async support with which you can use you own thread pool by implementing the
BlockingExecutor
trait. - Async support with a built-in thread pool.
- Async support that uses
tokio::task::spawn_blocking
and its I/O traits.
Structs
- An iterator over the contents of an archive.
Enums
- The contents of an archive, yielded in order from the beginning to the end of the archive.
- Determine the ownership behavior when unpacking the archive.
Functions
- Get all files in a archive using
source
as a reader. - Get all files in a archive using
source
as a reader. - Uncompress an archive using
source
as a reader anddest
as the destination directory. - Uncompress a specific file from an archive. The
source
is used as a reader, thetarget
as a writer and thepath
is the relative path for the file to be extracted from the archive. - Uncompress a specific file from an archive. The
source
is used as a reader, thetarget
as a writer and thepath
is the relative path for the file to be extracted from the archive. - Uncompress an archive using
source
as a reader anddest
as the destination directory. - Uncompress a file using the
source
need as reader and thetarget
as a writer.