haggis-rs/README.md

41 lines
1.5 KiB
Markdown

A modern archive format for serializing files, like Tar or Zip
Contents
========
- [Features](#features)
- [Building](#building)
- [Contributing](#contributing)
- [Raodmap](#roadmap)
## Features
For a more full specification of the format, please see [Format.md](Format.md)
- No padding between metadata fields or data segments so it only stores the data
required to recreate the original file
- Optional inline checksumming using a choice of md5, sha1 or sha256 algorithms
to ensure data integrity
- Easily parallelized library code
- Uses generic `Read` and `Write` interfaces from Rust `std` to support reading
archive nodes from anything that can supply a stream of data
## Building
The minimum supported Rust version (MSRV) for this project is currently Rust 1.65.
The crate can be added to your project by adding it to your `Cargo.toml` file.
Until the api is more mature you will have to use the crate from it's git repository
rather than from the crates.io package registry.
```Toml
[dependencies.haggis]
git = "https://codeberg.org/jeang3nie/haggis.git"
```
## Contributing
Contributions are always welcome. Please run `cargo fmt` and `cargo clippy` and
fix any issues before sending pull requests on Codeberg or patches via `git send-email`.
In addition to contributing to the Rust implementation here, it would be welcome
to see Haggis implemented in other languages.
## Roadmap
- [x] Create and extract archives
- [x] List archive nodes
- [ ] Specify user/group permissions to extract as
- [ ] Automatically detect zstd compressed archives