Decentralized Federated Learning, Made Modular
Murmura is an open-source framework for running Byzantine-resilient decentralized federated learning experiments. Swap aggregators, topologies, and backends from a single config file.
What is Murmura?
Murmura is a config-driven research framework for decentralized federated learning. Define your topology, aggregation algorithm, attack scenario, and execution backend in a single YAML file and run reproducible experiments with one command.
Config-Driven
Full experiments defined in YAML — reproducible, shareable, version-controlled
Modular
Plug in any aggregator, topology, or attack without touching the training loop
Two Backends
Fast in-process simulation or real distributed ZMQ processes — same config
Framework Features
Everything you need to design, run, and extend decentralized FL experiments.
Flexible Topologies
Ring, fully-connected, Erdős-Rényi, and k-regular graphs. Topology is decoupled from training logic.
Byzantine Attack Simulation
Built-in Gaussian noise, directed deviation, and topology-liar attacks with configurable Byzantine fraction.
Simulation & Distributed Backends
Run in-process for fast iteration or as real OS processes over ZeroMQ — switch with one config line.
Dynamic Topology Support
Mobility model generates time-varying graphs deterministically from a shared seed across all nodes.
Config-Driven Experiments
YAML or JSON configs with Pydantic validation. Every experiment is fully reproducible and shareable.
Extensible by Design
Add a new aggregator, topology, or attack by subclassing a single base class — no framework internals to touch.
Quick Start
Install, configure, and run your first experiment in minutes.
pip install murmura # or with uv (recommended) uv pip install murmura
# Run with a config file murmura run experiments/basic_fedavg.yaml # List available components murmura list-components aggregators murmura list-components topologies murmura list-components attacks
experiment: name: "my-experiment" rounds: 50 topology: type: "k-regular" num_nodes: 20 k: 4 aggregation: algorithm: "krum" attack: enabled: true type: "gaussian" percentage: 0.2 backend: simulation
Built-in Aggregators
Six aggregation algorithms ready to use out of the box — or bring your own by subclassing Aggregator.
FedAvg
Simple averaging
Krum
Distance-based filtering
BALANCE
Adaptive threshold
Sketchguard
Sketch compression
UBAR
Two-stage robust
Evidential Trust
Uncertainty-aware
Stay Updated
Subscribe to receive updates on Murmura's development and new releases.
We respect your privacy. Unsubscribe at any time.