llm-shield-api 0.1.0

Production-grade REST API for LLM Shield
[package]
name = "llm-shield-api"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Production-grade REST API for LLM Shield"

[dependencies]
# Web framework
axum = { version = "0.7", features = ["macros"] }
tower = { version = "0.5", features = ["full"] }
tower-http = { version = "0.5", features = ["trace", "timeout", "limit", "compression-gzip", "cors"] }

# Async runtime
tokio = { workspace = true, features = ["signal"] }

# Serialization
serde = { workspace = true }
serde_json = { workspace = true }

# Validation
validator = { version = "0.18", features = ["derive"] }

# Configuration
config = { version = "0.14", features = ["toml"] }

# Observability
tracing = { workspace = true }
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
metrics = "0.23"
metrics-exporter-prometheus = "0.15"

# OpenAPI / Swagger
utoipa = { version = "4.2", features = ["axum_extras"] }
utoipa-swagger-ui = { version = "7.1", features = ["axum"] }

# Rate limiting
governor = "0.6"

# Authentication & Security
argon2 = { version = "0.5", features = ["std"] }
base62 = "2.0"
rand = "0.8"
async-trait = "0.1"

# Error handling
thiserror = { workspace = true }
anyhow = "1.0"

# Utilities
uuid = { version = "1.11", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
num_cpus = "1.16"

# LLM Shield dependencies
llm-shield-core = { version = "0.1.0", path = "../llm-shield-core" }
llm-shield-scanners = { version = "0.1.0", path = "../llm-shield-scanners" }
llm-shield-models = { version = "0.1.0", path = "../llm-shield-models" }
llm-shield-anonymize = { version = "0.1.0", path = "../llm-shield-anonymize" }

# Cloud integrations (optional) - commented out due to compilation issues
# llm-shield-cloud = { version = "0.1.0", path = "../llm-shield-cloud", optional = true }
# llm-shield-cloud-aws = { version = "0.1.0", path = "../llm-shield-cloud-aws", optional = true }
# llm-shield-cloud-gcp = { version = "0.1.0", path = "../llm-shield-cloud-gcp", optional = true }
# llm-shield-cloud-azure = { version = "0.1.0", path = "../llm-shield-cloud-azure", optional = true }

[dev-dependencies]
# Testing
tokio-test = "0.4"
tower = { version = "0.5", features = ["util"] }
http-body-util = "0.1"
mime = "0.3"
futures = { workspace = true }

# Benchmarking
criterion = { workspace = true }

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

[features]
default = []
redis = ["dep:redis"]
# Cloud features temporarily disabled due to compilation issues
# cloud = ["dep:llm-shield-cloud"]
# cloud-aws = ["cloud", "dep:llm-shield-cloud-aws"]
# cloud-gcp = ["cloud", "dep:llm-shield-cloud-gcp"]
# cloud-azure = ["cloud", "dep:llm-shield-cloud-azure"]
# cloud-all = ["cloud-aws", "cloud-gcp", "cloud-azure"]

# Optional dependencies for advanced features
[dependencies.redis]
version = "0.26"
optional = true
features = ["tokio-comp", "connection-manager"]