[package]
name = "extension-registry"
version.workspace = true
edition.workspace = true
authors.workspace = true
description = "OCI-compliant extension registry proxy for managing provisioning system extensions and artifacts"

[dependencies]
# Workspace dependencies
tokio = { workspace = true, features = ["full"] }
futures = { workspace = true }
async-trait = { workspace = true }

# Web server and API
axum = { workspace = true }
tower = { workspace = true, features = ["full"] }
tower-http = { workspace = true, features = ["cors", "trace"] }

# Serialization
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }

# Platform configuration
platform-config = { path = "../platform-config" }

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

# Logging
tracing = { workspace = true }
tracing-subscriber = { workspace = true }

# UUID and time
uuid = { workspace = true, features = ["v4", "serde"] }
chrono = { workspace = true, features = ["serde"] }

# CLI
clap = { workspace = true, features = ["derive"] }

# HTTP client for OCI registry operations
reqwest = { workspace = true }

# Cryptography for digest validation
sha2 = { workspace = true }
hex = { workspace = true }

# URL parsing
url = { workspace = true }

# Bytes manipulation
bytes = { workspace = true }

# LRU caching
lru = { workspace = true }

# Parking lot for synchronization
parking_lot = { workspace = true }

# TOML parsing
toml = { workspace = true }

[dev-dependencies]
tokio-test = { workspace = true }
tempfile = { workspace = true }
hyper = { workspace = true }
http-body-util = "0.1"

# Library target
[lib]
name = "extension_registry"
path = "src/lib.rs"

# Binary target
[[bin]]
name = "extension-registry"
path = "src/main.rs"
