[package]
name = "provenant-cli"
version = "0.1.4"
edition = "2024"
autobins = false
repository = "https://github.com/mstykow/provenant"
homepage = "https://github.com/mstykow/provenant"
documentation = "https://github.com/mstykow/provenant/blob/main/docs/DOCUMENTATION_INDEX.md"
description = "Independent Rust scanner for ScanCode-compatible workflows, licenses, package metadata, SBOMs, and provenance data."
license = "Apache-2.0"
keywords = ["scancode", "sbom", "license", "provenance", "compliance"]
categories = ["command-line-utilities", "development-tools"]
readme = "README.md"
include = [
"src/**/*",
"!src/**/*_test.rs",
"!src/**/test.rs",
"!src/**/tests.rs",
"!src/**/*_tests.rs",
"!src/**/*test_utils.rs",
"!src/**/test_fixtures.rs",
"/build.rs",
"/resources/license_detection/license_index.zst",
"/resources/license_detection/index_build_policy.toml",
"/resources/license_detection/overlay/**/*",
"/resources/license_detection/legalese_data.txt",
"/Cargo.toml",
"/Cargo.lock",
"/ACKNOWLEDGEMENTS.md",
"/README.md",
"/CITATION.cff",
"/DCO",
"/LICENSE",
"/NOTICE",
"/SECURITY.md",
]
[package.metadata.cargo-machete]
ignored = ["md-5", "kamadak-exif"]
[package.metadata.release]
sign-tag = true
push = true
pre-release-commit-message = "chore: release"
pre-release-replacements = [
{ file = "CITATION.cff", search = '^version: ".*"$', replace = 'version: "{{version}}"' },
]
pre-release-hook = ["./scripts/check_release_version_sync.sh", "--update-lockfile"]
tag-message = "Release v{{version}}"
tag-name = "v{{version}}"
publish = false
[workspace]
resolver = "3"
members = ["tools/license-headers", "xtask"]
[workspace.metadata.release]
pre-release-commit-message = "chore: release"
[workspace.dependencies]
anyhow = "1.0.102"
clap = { version = "4.6.1", features = ["derive"] }
glob = "0.3.3"
postcard = { version = "1.1.3", default-features = false, features = ["alloc"] }
rayon = "1.12.0"
regex = "1.12.3"
rkyv = "0.8.16"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = { version = "1.0.150", features = ["preserve_order"] }
sha2 = "0.11.0"
tempfile = "3.27.0"
toml = "1.1.2"
url = "2.5.8"
yaml_serde = "0.10.4"
zstd = "0.13.3"
[lib]
name = "provenant"
path = "src/lib.rs"
[[bin]]
name = "provenant"
path = "src/bin/provenant.rs"
[features]
default = ["rpm-sqlite"]
golden-tests = []
rpm-sqlite = ["dep:rusqlite"]
[dependencies]
allsorts = { version = "0.16.1", default-features = false, features = ["flate2_rust"] }
anyhow = { workspace = true }
ar = "0.9"
base64 = "0.22.1"
bit-set = "0.10.0"
bzip2 = "0.6.1"
chrono = "0.4.44"
clap = { workspace = true }
csv = "1.4.0"
daachorse = "3.0.0"
derive_builder = "0.20.2"
directories = "6.0.0"
env_logger = "0.11.10"
fd-lock = "4.0.4"
file-format = { version = "0.29.0", features = ["reader", "reader-txt", "reader-xml", "reader-zip"] }
file-identify = "0.4.0"
flate2 = "1.1.9"
glob = { workspace = true }
hex = "0.4.3"
http = "1.4.0"
image = { version = "0.25.10", default-features = false, features = ["jpeg", "png", "tiff", "webp"] }
indicatif = "0.18.4"
indicatif-log-bridge = "0.2.3"
json5 = "1.3.1"
kamadak-exif = "0.6.1"
liblzma = "0.4.6"
log = "0.4.29"
md-5 = "0.11.0"
mime_guess = "2.0.5"
object = { version = "0.39.1", default-features = false, features = ["read_core", "elf", "macho", "pe"] }
os_info = "3.14.0"
packageurl = "0.6.0"
pdf_oxide = "0.3.53"
postcard = { workspace = true }
prost = { version = "0.14.3", features = ["derive"] }
quick-xml = "0.40.1"
rancor = "0.1.1"
rayon = { workspace = true }
regex = { workspace = true }
reqwest = { version = "0.13.3", default-features = false, features = ["blocking", "rustls"] }
rkyv = { workspace = true, features = ["smallvec-1"] }
rpm = { version = "0.23.5", default-features = false, features = ["payload", "gzip-compression", "xz-compression", "zstd-compression", "bzip2-compression"] }
ruff_python_ast = { version = "0.15.8", package = "rustpython-ruff_python_ast" }
ruff_python_parser = { version = "0.15.8", package = "rustpython-ruff_python_parser" }
rusqlite = { version = "0.39.0", features = ["bundled"], optional = true }
rusty-axml = "0.2.1"
schemars = { version = "1.2.1", features = ["derive"] }
serde = { workspace = true }
serde_json = { workspace = true }
sha1 = "0.11.0"
sha2 = { workspace = true }
smallvec = "1.15.1"
starlark_syntax = "0.13.0"
strum = { version = "0.28.0", features = ["derive"] }
tar = "0.4.45"
tempfile = { workspace = true }
tera = { version = "1.20.1", default-features = false }
thiserror = "2.0.18"
toml = { workspace = true }
ttf-parser = "0.25.1"
url = { workspace = true }
uuid = { version = "1.23.1", features = ["v4"] }
yaml_serde = { workspace = true }
zip = "8.6.0"
zstd = { workspace = true }
[build-dependencies]
rkyv = { workspace = true }
[dev-dependencies]
[lints.clippy]
cargo = { level = "warn", priority = -1 }
cast_lossless = "warn"
checked_conversions = "warn"
cloned_instead_of_copied = "warn"
clone_on_ref_ptr = "warn"
filetype_is_file = "warn"
cast_sign_loss = "warn"
[profile.release]
lto = true
codegen-units = 1
opt-level = 3
strip = true
[profile.ci-release]
inherits = "release"
lto = false
codegen-units = 16
strip = false
[profile.profiling]
inherits = "release"
strip = false
debug = true