rs
  1[package]
  2name = "spandx"
  3version = "0.1.0"
  4edition = "2021"
  5rust-version = "1.70"
  6authors = ["Can Eldem <eldemcan@gmail.com>", "mo khan <mo@mokhan.ca>"]
  7description = "A Rust interface to the SPDX catalogue for dependency license scanning"
  8homepage = "https://spandx.github.io/"
  9repository = "https://github.com/spandx/spandx-rs"
 10license = "MIT"
 11keywords = ["spdx", "license", "dependencies", "security", "scanner"]
 12categories = ["command-line-utilities", "development-tools"]
 13
 14[dependencies]
 15# CLI framework
 16clap = { version = "4.0", features = ["derive", "env"] }
 17
 18# HTTP client
 19reqwest = { version = "0.11", features = ["json", "stream"] }
 20tokio = { version = "1.0", features = ["full"] }
 21
 22# Serialization
 23serde = { version = "1.0", features = ["derive"] }
 24serde_json = "1.0"
 25serde_yaml = "0.9"
 26toml = "0.8"
 27
 28# XML parsing
 29roxmltree = "0.19"
 30quick-xml = { version = "0.31", features = ["serialize"] }
 31
 32# Git operations
 33git2 = "0.18"
 34
 35# Error handling
 36anyhow = "1.0"
 37thiserror = "1.0"
 38
 39# Async runtime and utilities
 40futures = "0.3"
 41async-trait = "0.1"
 42
 43# Parallel processing
 44rayon = "1.8"
 45
 46# Path handling
 47camino = { version = "1.1", features = ["serde1"] }
 48
 49# Progress indicators
 50indicatif = "0.17"
 51
 52# Table formatting
 53tabled = "0.14"
 54
 55# CSV handling
 56csv = "1.3"
 57
 58# Logging
 59tracing = "0.1"
 60tracing-subscriber = { version = "0.3", features = ["env-filter"] }
 61
 62# URL handling
 63url = { version = "2.4", features = ["serde"] }
 64
 65# Regular expressions
 66regex = "1.10"
 67
 68# String similarity
 69strsim = "0.10"
 70
 71# Configuration
 72config = "0.13"
 73
 74# File watching and utilities
 75walkdir = "2.4"
 76tempfile = "3.8"
 77
 78# Compression
 79flate2 = "1.0"
 80
 81# Cache storage
 82sled = "0.34"
 83
 84# HCL parsing for Terraform
 85hcl-rs = "0.16"
 86
 87# License expression parsing
 88pest = "2.7"
 89pest_derive = "2.7"
 90
 91# Binary data handling
 92byteorder = "1.5"
 93
 94# Time handling
 95chrono = { version = "0.4", features = ["serde"] }
 96
 97# UUID generation
 98uuid = { version = "1.6", features = ["v4"] }
 99
100# URL encoding
101urlencoding = "2.1"
102
103# Hashing
104sha1 = "0.10"
105
106# Directory utilities
107dirs = "5.0"
108
109# Static values
110lazy_static = "1.4"
111
112[dev-dependencies]
113# Testing
114tokio-test = "0.4"
115wiremock = "0.5"
116assert_cmd = "2.0"
117predicates = "3.0"
118tempfile = "3.8"
119criterion = { version = "0.5", features = ["html_reports"] }
120
121[build-dependencies]
122# Build-time dependencies if needed
123
124[[bin]]
125name = "spandx"
126path = "src/main.rs"
127
128[[example]]
129name = "hierarchical_cache_demo"
130path = "examples/hierarchical_cache_demo.rs"
131
132[[example]]
133name = "error_handling_demo"
134path = "examples/error_handling_demo.rs"
135
136[profile.release]
137lto = true
138codegen-units = 1
139panic = "abort"
140strip = true
141
142[[bench]]
143name = "performance_benchmarks"
144harness = false