[package]
name = "portable-network-archive"
version = "0.29.0"
edition = "2024"
license = "Apache-2.0 OR MIT"
description = "Portable-Network-Archive cli"
repository = "https://github.com/ChanTsune/Portable-Network-Archive.git"
categories = ["data-structures", "filesystem"]
keywords = ["pna", "archive", "cli", "crypto", "data"]
rust-version = "1.85"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
anyhow = { version = "1.0.100", features = ["backtrace"] }
base64 = "0.22.1"
bitflags = "2.10.0"
bstr = "1.12.1"
bugreport = { version = "0.5.1", default-features = false, features = ["collector_operating_system", "format_markdown"] }
bytesize = "2.3.1"
chrono = "0.4.42"
clap = { version = "4.5.53", features = ["derive"] }
clap_complete = "4.5.61"
fern = "0.7.1"
gix-prompt = "0.11.2"
globset = "0.4.18"
ignore = "0.4.25"
indexmap = "2.12.1"
itertools = "0.14.0"
jiff = "0.2.16"
libc = "0.2.178"
log = "0.4.29"
memmap2 = { version = "0.9.9", optional = true }
nom = "8.0.0"
parse_datetime = "0.13.3"
path-slash = "0.2.1"
pna = { version = "0.29.0", path = "../pna" }
rayon = "1.11.0"
regex = "1.12.2"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.145"
tabled = { version = "0.20.0", default-features = false, features = ["std", "ansi"] }
termtree = "0.5"
thiserror = "2.0.17"
rand = "0.8.5"
walkdir = "2.5.0"

[target.'cfg(unix)'.dependencies]
nix = { version = "0.30.1", features = ["user"] }
xattr = "1.6.1"

[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "macos"))'.dependencies]
exacl = { version = "0.12.0", optional = true }
nix = { version = "0.30.1", features = ["user", "fs", "ioctl"] }

[target.'cfg(windows)'.dependencies]
scopeguard = "1.2.0"
windows = { version = "0.62.2", features = [
  "Win32_Storage_FileSystem",
  "Win32_Security_Authorization",
  "Win32_System_WindowsProgramming",
  "Win32_System_Threading",
] }
field-offset = { version = "0.3.6", optional = true }

[dev-dependencies]
maplit = "1.0.2"
path-slash = "0.2.1"
rust-embed = { version = "8.9.0", features = ["debug-embed"] }
same-file = "1.0.6"
walkdir = "2.5.0"
criterion = { version = "0.7.0", default-features = false, features = ["cargo_bench_support", "plotters"] }

[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
assert_cmd = "2.1.1"

[features]
acl = [
    "dep:exacl",
    "dep:field-offset",
    "windows/Win32_System_SystemServices",
]
memmap = ["dep:memmap2"]
zlib-ng = ["pna/zlib-ng"]

[[bin]]
name = "pna"
path = "src/main.rs"

[[bench]]
name = "create"
harness = false

[[bench]]
name = "extract"
harness = false

[[bench]]
name = "list"
harness = false

[[bench]]
name = "split"
harness = false

[package.metadata.release]
pre-release-replacements = [
    { file = "src/lib.rs", search = "https://docs.rs/portable-network-archive/[0-9]+\\.[0-9]+\\.[0-9]+", replace = "https://docs.rs/portable-network-archive/{{version}}" },
]
