[package]
edition = "2024"
rust-version = "1.88"
name = "sbom-tools"
version = "0.1.22"
build = false
exclude = ["tests/fixtures/cyclonedx/sbom-cyclone-dx-json-*.json"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Semantic SBOM diff and analysis tool"
readme = "README.md"
keywords = [
"sbom",
"cyclonedx",
"spdx",
"diff",
"security",
]
categories = [
"command-line-utilities",
"development-tools",
"security",
]
license = "MIT"
repository = "https://github.com/sbom-tool/sbom-tools"
[package.metadata.binstall]
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.{ archive-format }"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
[features]
cli = [
"tui",
"dep:clap_complete",
"dep:clap_mangen",
"dep:ctrlc",
]
default = [
"enrichment",
"cli",
"tui",
]
enrichment = [
"dep:reqwest",
"dep:flate2",
]
ffi = []
tui = [
"dep:ratatui",
"dep:crossterm",
]
[lib]
name = "sbom_tools"
crate-type = ["rlib"]
path = "src/lib.rs"
[[bin]]
name = "sbom-tools"
path = "src/main.rs"
required-features = [
"cli",
"tui",
]
[[test]]
name = "bsi_sbom_for_ai_tests"
path = "tests/bsi_sbom_for_ai_tests.rs"
[[test]]
name = "cbom_tests"
path = "tests/cbom_tests.rs"
[[test]]
name = "cli_contract_tests"
path = "tests/cli_contract_tests.rs"
[[test]]
name = "compliance_rule_registry_tests"
path = "tests/compliance_rule_registry_tests.rs"
[[test]]
name = "config_flag_tests"
path = "tests/config_flag_tests.rs"
[[test]]
name = "conformance_ffi"
path = "tests/conformance_ffi.rs"
required-features = ["ffi"]
[[test]]
name = "convert_emit_tests"
path = "tests/convert_emit_tests.rs"
[[test]]
name = "cra_adjacent_regulation_tests"
path = "tests/cra_adjacent_regulation_tests.rs"
[[test]]
name = "cra_conformity_summary_tests"
path = "tests/cra_conformity_summary_tests.rs"
[[test]]
name = "cra_docs_tests"
path = "tests/cra_docs_tests.rs"
[[test]]
name = "cra_golden_fixtures_tests"
path = "tests/cra_golden_fixtures_tests.rs"
[[test]]
name = "cra_oss_steward_tests"
path = "tests/cra_oss_steward_tests.rs"
[[test]]
name = "cra_p1_p2_gaps_tests"
path = "tests/cra_p1_p2_gaps_tests.rs"
[[test]]
name = "cra_p5_tests"
path = "tests/cra_p5_tests.rs"
[[test]]
name = "cra_product_class_tests"
path = "tests/cra_product_class_tests.rs"
[[test]]
name = "cra_readiness_tests"
path = "tests/cra_readiness_tests.rs"
[[test]]
name = "csaf_emit_tests"
path = "tests/csaf_emit_tests.rs"
[[test]]
name = "csaf_tests"
path = "tests/csaf_tests.rs"
[[test]]
name = "enrichment_http_tests"
path = "tests/enrichment_http_tests.rs"
[[test]]
name = "enrichment_orchestration_tests"
path = "tests/enrichment_orchestration_tests.rs"
[[test]]
name = "eol_tests"
path = "tests/eol_tests.rs"
[[test]]
name = "eu_ai_act_tests"
path = "tests/eu_ai_act_tests.rs"
[[test]]
name = "ffi_bindings"
path = "tests/ffi_bindings.rs"
required-features = ["ffi"]
[[test]]
name = "ffi_regression"
path = "tests/ffi_regression.rs"
required-features = ["ffi"]
[[test]]
name = "ffi_schema_snapshots"
path = "tests/ffi_schema_snapshots.rs"
required-features = ["ffi"]
[[test]]
name = "golden_fixtures"
path = "tests/golden_fixtures.rs"
[[test]]
name = "golden_reports"
path = "tests/golden_reports.rs"
[[test]]
name = "graph_tests"
path = "tests/graph_tests.rs"
[[test]]
name = "huggingface_tests"
path = "tests/huggingface_tests.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "json_view_vulnerabilities_tests"
path = "tests/json_view_vulnerabilities_tests.rs"
[[test]]
name = "kev_staleness_tests"
path = "tests/kev_staleness_tests.rs"
[[test]]
name = "ml_component_vuln_enrichment_tests"
path = "tests/ml_component_vuln_enrichment_tests.rs"
[[test]]
name = "multi_flag_tests"
path = "tests/multi_flag_tests.rs"
[[test]]
name = "offline_cache_tests"
path = "tests/offline_cache_tests.rs"
[[test]]
name = "pipeline_tests"
path = "tests/pipeline_tests.rs"
[[test]]
name = "proptest_diff"
path = "tests/proptest_diff.rs"
[[test]]
name = "proptest_matching"
path = "tests/proptest_matching.rs"
[[test]]
name = "proptest_parsers"
path = "tests/proptest_parsers.rs"
[[test]]
name = "proptest_quality"
path = "tests/proptest_quality.rs"
[[test]]
name = "proptest_types"
path = "tests/proptest_types.rs"
[[test]]
name = "quality_complexity"
path = "tests/quality_complexity.rs"
[[test]]
name = "query_tests"
path = "tests/query_tests.rs"
[[test]]
name = "sarif_aibom_tests"
path = "tests/sarif_aibom_tests.rs"
[[test]]
name = "sarif_help_uri_tests"
path = "tests/sarif_help_uri_tests.rs"
[[test]]
name = "showcase_cli_tests"
path = "tests/showcase_cli_tests.rs"
[[test]]
name = "stdin_input_tests"
path = "tests/stdin_input_tests.rs"
[[test]]
name = "vex_tests"
path = "tests/vex_tests.rs"
[[test]]
name = "watch_tests"
path = "tests/watch_tests.rs"
[[bench]]
name = "diff_benchmark"
path = "benches/diff_benchmark.rs"
harness = false
[[bench]]
name = "hot_paths"
path = "benches/hot_paths.rs"
harness = false
[[bench]]
name = "large_sbom"
path = "benches/large_sbom.rs"
harness = false
[dependencies.anyhow]
version = "1.0"
[dependencies.chrono]
version = "0.4.44"
features = ["serde"]
[dependencies.clap]
version = "4.6"
features = [
"derive",
"env",
]
[dependencies.clap_complete]
version = "4.6"
optional = true
[dependencies.clap_mangen]
version = "0.3"
optional = true
[dependencies.crossterm]
version = "0.29"
optional = true
[dependencies.ctrlc]
version = "3.5"
optional = true
[dependencies.dirs]
version = "6.0.0"
[dependencies.flate2]
version = "1.0"
optional = true
[dependencies.indexmap]
version = "2.14"
features = ["serde"]
[dependencies.quick-xml]
version = "0.40"
features = ["serialize"]
[dependencies.ratatui]
version = "0.30"
features = ["crossterm"]
optional = true
[dependencies.rayon]
version = "1.12"
[dependencies.regex]
version = "1.10"
[dependencies.reqwest]
version = "0.13"
features = [
"blocking",
"json",
"rustls",
]
optional = true
default-features = false
[dependencies.schemars]
version = "1.2"
[dependencies.semver]
version = "1.0"
features = ["serde"]
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_yaml_ng]
version = "0.10"
[dependencies.sha2]
version = "0.11"
[dependencies.spdx]
version = "0.13"
[dependencies.strsim]
version = "0.11"
[dependencies.thiserror]
version = "2.0"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3.23"
features = ["env-filter"]
[dependencies.unicode-width]
version = "0.2"
[dependencies.xxhash-rust]
version = "0.8"
features = ["xxh3"]
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.httpmock]
version = "0.7"
[dev-dependencies.insta]
version = "1.43"
features = ["filters"]
[dev-dependencies.proptest]
version = "1.11"
[dev-dependencies.tempfile]
version = "3.27"
[profile.release]
lto = true
codegen-units = 1