async_bagit 0.2.0

Create and load BagIt containers
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com).

## Unreleased

## 0.2.0 - 2024-08-01

### Added

- Support for tag manifests
- Added `Metadata` struct, read/write tags from/to file bag-data.txt
- Storing metadata tags inside `BagIt` struct
- Store file size in `Payload` struct

Supporting reading and writing commonly used tags through `Metadata` struct:
- `BagIt-Version`
- `Tag-File-Character-Encoding`
- `Bagging-Date` (with [`jiff`]http://docs.rs/jiff crate)
- `Payload-Oxum`
- Custom tags with key/value stored as strings

### Changed

- Write a tag manifest when creating a bag
- Validate tag manifest if present when reading a bag
- Using new `Metadata` struct for reading and writing bagit.txt file

### Fixed

- Use absolute paths when reading payloads, should prevent from path traversal attacks

## 0.1.0 - 2024-07-21

### Added

- Read and validate bags, get paths of data payloads
- Create bags, add data payloads, finalize them
- Example: Create bag with BLAKE3 algorithm
- Example: Read zstd archive containing a tarball containing a bag 
- Tests, sample assets
- Checksum algorithm must be provided by crate consumer