[package] name = "rtx-federated" version.workspace = true edition.workspace = true authors.workspace = true license.workspace = true repository.workspace = true description = "Advanced federated learning platform with comprehensive privacy-preserving distributed learning" keywords = ["federated-learning", "privacy", "distributed", "machine-learning", "rtx"] categories = ["science", "algorithms", "cryptography", "network-programming"] [dependencies] # Core RTX dependencies rtx-tensor = { workspace = true } rtx-distributed = { workspace = true } rtx-security = { workspace = true } # Essential dependencies anyhow = { workspace = true } thiserror = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } tokio = { workspace = true } futures = { workspace = true } async-trait = { workspace = true } # Math and crypto nalgebra = { workspace = true } rand = { workspace = true } num-complex = { workspace = true } sha2 = { workspace = true } base64 = { workspace = true } # Collections and concurrency indexmap = { workspace = true } dashmap = { workspace = true } parking_lot = { workspace = true } crossbeam = { workspace = true } rayon = { workspace = true } # Networking and serialization reqwest = { workspace = true } bincode = { workspace = true } uuid = { workspace = true } # Time and timing chrono = { workspace = true } # Specialized federated learning dependencies curve25519-dalek = "4.1" ed25519-dalek = "2.1" aes-gcm = "0.10" chacha20poly1305 = "0.10" ring = "0.17" x25519-dalek = "2.0" hkdf = "0.12" # Differential privacy statrs = { version = "0.16", optional = true } ndarray = { version = "0.15", optional = true } # Homomorphic encryption tfhe = { version = "0.9", optional = true } # Byzantine fault tolerance byzantine-generals = { version = "0.1", optional = true } # Meta-learning support tch = { version = "0.16", optional = true } [dev-dependencies] tokio-test = { workspace = true } proptest = { workspace = true } criterion = { workspace = true } tempfile = { workspace = true } [features] default = ["standard"] standard = ["differential-privacy", "byzantine-robust", "meta-learning"] differential-privacy = ["statrs", "ndarray"] homomorphic-encryption = ["tfhe"] byzantine-robust = ["byzantine-generals"] meta-learning = ["tch"] simulation = ["tokio/test-util"] [[bench]] name = "federated_bench" harness = false [[example]] name = "federated_demo" required-features = ["standard"] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"]