Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ossystems/compress-tools-rs
A Swiss Army Knife for handling compressed data in Rust
https://github.com/ossystems/compress-tools-rs
compression embedded-linux iot libarchive rust
Last synced: 4 days ago
JSON representation
A Swiss Army Knife for handling compressed data in Rust
- Host: GitHub
- URL: https://github.com/ossystems/compress-tools-rs
- Owner: OSSystems
- License: apache-2.0
- Created: 2019-04-17T21:19:30.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-08T11:05:39.000Z (6 months ago)
- Last Synced: 2025-02-02T17:15:41.240Z (4 days ago)
- Topics: compression, embedded-linux, iot, libarchive, rust
- Language: Rust
- Homepage:
- Size: 229 KB
- Stars: 80
- Watchers: 12
- Forks: 28
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
[![Coverage Status](https://coveralls.io/repos/github/OSSystems/compress-tools-rs/badge.svg?branch=master)](https://coveralls.io/github/OSSystems/compress-tools-rs?branch=master)
[![Documentation](https://docs.rs/compress-tools/badge.svg)](https://docs.rs/compress-tools)# 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](https://github.com/OSSystems/compress-tools-rs/workflows/CI%20-%20Linux%20-%20x86_64/badge.svg)](https://github.com/OSSystems/compress-tools-rs/actions) |
| macOS - x86_64 | [![build status](https://github.com/OSSystems/compress-tools-rs/workflows/CI%20-%20macOS%20-%20x86_64/badge.svg)](https://github.com/OSSystems/compress-tools-rs/actions) |
| Windows - x86_64 | [![build status](https://github.com/OSSystems/compress-tools-rs/workflows/CI%20-%20Windows%20-%20x86_64/badge.svg)](https://github.com/OSSystems/compress-tools-rs/actions) |---
## 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 archiveFor example, to extract an archive file it is as simple as:
```rust
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
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)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.