34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
A modern archive format for serializing files, like Tar or Zip
|
|
|
|
Contents
|
|
========
|
|
- [Features](#features)
|
|
- [Building](#building)
|
|
- [Contributing](#contributing)
|
|
|
|
## 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.
|