Files
rustytorch/crates/production/rtx-config/Cargo.toml
T
2026-03-04 00:08:42 +00:00

83 lines
2.3 KiB
TOML

[package]
name = "rtx-config"
version = "1.0.0"
edition.workspace = true
rust-version = "1.92"
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "Configuration management with hot-reloading and secret management for RustyTorch"
[dependencies]
# Essential dependencies
anyhow = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["full", "rt-multi-thread"] }
async-trait = { workspace = true }
# Serialization and configuration
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
serde_yaml = "0.9"
toml = { workspace = true }
config = { workspace = true }
# File watching for hot reloading
notify = { version = "6.1", optional = true }
futures = { workspace = true }
# Environment variable handling
dotenvy = { version = "0.15", optional = true }
# Secret management and encryption
keyring = { version = "2.3", optional = true }
aes-gcm = { version = "0.10", optional = true }
argon2 = { version = "0.5", optional = true }
rand = { workspace = true }
base64 = "0.22"
# Feature flags and A/B testing
uuid = { workspace = true, features = ["v4", "serde"], optional = true }
sha2 = { workspace = true, optional = true }
# Configuration validation
jsonschema = { workspace = true, optional = true }
validator = { version = "0.16", features = ["derive"], optional = true }
# Time handling
chrono = { workspace = true, features = ["serde"] }
# Logging and telemetry
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
# Concurrent data structures
dashmap = { workspace = true }
parking_lot = { workspace = true }
tokio-util = "0.7"
# HTTP client for remote configuration
reqwest = { workspace = true, features = ["json"], optional = true }
# Path utilities
directories = "5.0"
[dev-dependencies]
tokio-test = { workspace = true }
tempfile = { workspace = true }
proptest = { workspace = true }
criterion = { workspace = true, features = ["html_reports"] }
test-log = "0.2"
[features]
default = ["file-watcher", "env-vars"]
file-watcher = ["dep:notify"]
env-vars = ["dep:dotenvy"]
encryption = ["dep:aes-gcm", "dep:keyring"]
remote-config = ["dep:reqwest"]
validation = ["dep:jsonschema", "dep:validator"]
feature-flags = ["dep:uuid", "dep:sha2"]
[lints]
workspace = true