[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