[package]
name = "pfs-ms"
version = "0.0.8"
edition = "2021"
description = "Reference implementation of PFS-MS v1.0, the PCF File System Multi-Session profile"
license = "MIT OR Apache-2.0"
repository = "https://github.com/kduma-OSS/Partitioned-Container-Format"
homepage = "https://github.com/kduma-OSS/Partitioned-Container-Format"
readme = "README.md"
keywords = ["pcf", "pfs", "filesystem", "vcdiff", "container"]
categories = ["encoding", "filesystem"]

# This crate is a *reference* implementation of the PFS-MS profile. Like the
# `pcf` crate it builds on, it favours a direct, auditable mapping onto the
# written specification (`specs/PFS-MS-spec-v1.0.txt`) over raw performance.

[[bin]]
name = "pfs"
path = "src/bin/pfs.rs"

[dependencies]
# The PFS-MS profile is layered strictly above PCF v1.0; every byte container
# operation goes through the reference PCF crate.
pcf = { path = "../PCF-v1.0", version = "0.0.8" }

# VCDIFF (RFC 3284) is the required delta algorithm (patch_algo_id = 1).
# `oxidelta` is a pure-Rust encoder/decoder; default features (CLI, file-io,
# lzma/zlib secondary compressors) are disabled to keep the dependency minimal.
oxidelta = { version = "=0.1.4", default-features = false }

# 16-byte node_id / PCF uid generation (UUIDv7 recommended by both specs).
uuid = { version = "1", features = ["v7"] }

# DEFLATE (RFC 1951) is the required content-compression algorithm
# (compression_algo_id = 1). `flate2`'s pure-Rust miniz_oxide backend keeps the
# crate free of C dependencies and fully portable.
flate2 = { version = "1", default-features = false, features = ["rust_backend"] }

# Portable file modification-time setting for the directory-import/extract tools.
filetime = "0.2"
