use-archive 0.1.0

Feature-gated facade crate for RustUse archive primitives
Documentation

use-archive

Feature-gated facade crate for RustUse archive primitives.

This crate re-exports focused archive vocabulary crates from the use-archive workspace. It is intentionally primitive-only: it describes archive formats, compression codecs, entry metadata, manifests, paths, and policies, but does not read, write, extract, compress, decompress, decrypt, or mount archive data.

Example

# #[cfg(feature = "full")]
# {
use use_archive::{
    ArchiveEncoding, ArchiveEntry, ArchiveEntryKind, ArchiveFormat, ArchiveManifest,
    ArchivePolicy, CompressionFormat, is_safe_relative_archive_path,
};

let encoding = ArchiveEncoding::from_extension("release.tar.zst");
assert_eq!(encoding.archive, ArchiveFormat::Tar);
assert_eq!(encoding.compression, CompressionFormat::Zstd);

assert!(is_safe_relative_archive_path("docs/readme.md"));

let policy = ArchivePolicy::strict();
assert!(!policy.allow_symlinks);

let manifest = ArchiveManifest::new(encoding).with_entries(vec![
    ArchiveEntry::new("docs/readme.md", ArchiveEntryKind::File).with_size(128),
]);

assert_eq!(manifest.file_count(), 1);
# }