Skip to content

flower

AI Agents & Assistants

A framework for building federated AI systems that is customizable, extendable, and works with any machine learning library

Python Latest framework-1.30.0 · 14d ago Security brief →

Features

  • Customizable to fit diverse federated learning use cases
  • Extendable architecture supporting research‑grade experimentation
  • Framework‑agnostic – integrates with PyTorch, TensorFlow, Hugging Face, scikit‑learn, JAX, etc.
  • Designed for understandability and community contribution

Recent releases

View all 13 releases →
Review required
framework-1.30.0 Breaking risk
Auth Crypto / TLS

Task system + runtime checks + TLS + command restrictions

framework-1.29.0 Breaking risk
Breaking changes
  • Removes Flower File Storage (FFS) and the `--storage-dir` option from `flower-superlink`; replaces with LinkState‑based storage methods.
Notable features
  • Adds `--allow-runtime-dependency-installation` flag to `flower-superexec` enabling per‑run venv creation via uv.
  • Enhances federation management: inspect run details, stream logs, stop runs; adds federation name validation and hides SuperNode status for archived federations.
  • Introduces experimental HMAC shared‑secret authentication for SuperExec with nonce replay protection.
Full changelog

Thanks to our contributors

We would like to give our special thanks to all the contributors who made the new version of Flower possible (in git shortlog order):

Charles Beauville, Chong Shen Ng, Daniel J. Beutel, Heng Pan, Javier, Micah Sheller, Mohammad Naseri, Patrick Foley, Yan Gao

What's new?

  • Introduce runtime dependency installation option for isolated execution (#6741)

    Introduces the --allow-runtime-dependency-installation flag to flower-superexec, enabling runtime dependency installation via uv so that applications with differing dependencies can run independently. Runtime dependency installation automatically creates an independent venv for each run, even if those runs happen concurrently. Propagates this option from flower-superlink/flower-supernode to automatically started flower-superexec instances when using subprocess isolation mode.

  • Improve federation run management and validation (#6943, #6956, #6957, #6961)

    Enhances federation functionality by enabling members to inspect run details, stream logs, and stop runs directly within a federation. Introduces validation for federation names during creation. Hides the SuperNode status column when a federation is archived.

  • Introduce SuperExec authentication with HMAC and shared secrets (#6948, #6949, #6950, #6951, #6952, #6977, #6978, #6979, #6980, #6981)

    Introduces an experimental SuperExec authentication mechanism based on shared-secret HMAC. Establishes core primitives, nonce replay protection, and interceptor foundations, and integrates authentication into ServerAppIo and ClientAppIo.

  • Show Flower Hub compatibility note in CLI download and review flows (#6989, #6992)

    Surfaces the Flower Hub-provided compatibility note when an app download resolves to an older compatible version instead of the latest release. Reads the returned note field and displays it in flwr run, flwr new and flwr app review, improving transparency around version selection.

  • Enhance authentication for flwr-* processes (#6796)

    Improves security by authenticating RPC calls from flwr-serverapp, flwr-simulation, and flwr-clientapp using token-based mechanism.

  • Update examples with FAB metadata and improved documentation (#6890, #6935)

    Enhances examples by updating README files to use local SuperLink and adding FAB format metadata (fab-format-version = 1 and flwr-version-target). Introduces LICENSE files across published apps and bumps application versions at the minor level to reflect these updates.

  • Display full FAB hash in flwr list JSON output (#6958)

    Replaces truncated FAB hash with the full hash value in the JSON output of flwr list, ensuring complete and accurate identification of FABs.

  • Update documentation (#6959, #6964, #6966)

  • Stabilize CI pipelines and improve test reliability (#6911, #6974, #6985, #6987)

  • General improvements (#6931, #6944, #6946, #6955, #6970, #6973, #6982, #6983, #6988, #6990, #6994, #6995, #6996, #6997, #6999, #7003, #7004, #7005)

    As always, many parts of the Flower framework and quality infrastructure were improved and updated.

Incompatible changes

  • Remove Flower File Storage (FFS) (#6809, #6810)

    Removes Flower File Storage (FFS) and transitions to LinkState-based storage, introducing replacement methods in LinkState and NodeState. Eliminates the --storage-dir option from flower-superlink as part of this change.

framework-1.28.0 Breaking risk
Breaking changes
  • Removed deprecated `run_simulation` Python entrypoint; use `flwr run` instead.
Notable features
  • Introduce federation-based simulation configuration and management
  • Add configurable FAB inclusion and exclusion rules
  • Introduce FAB format v1 validation rules and requirements
Full changelog

Thanks to our contributors

We would like to give our special thanks to all the contributors who made the new version of Flower possible (in git shortlog order):

Charles Beauville, Chong Shen Ng, Daniel J. Beutel, Daniel Nata Nugraha, Heng Pan, Javier, Julian Rußmeyer, Micah Sheller, Mohammad Naseri, Patrick Foley, Taner Topal, William Lindskog, Yan Gao, xiaoyanshen799

What's new?

  • Introduce federation-based simulation configuration and management (#6787, #6790, #6791, #6806, #6813, #6820, #6821, #6826, #6829, #6837, #6846, #6848, #6857, #6858, #6859, #6860, #6861, #6865, #6867, #6882, #6883, #6888, #6895, #6907, #6934)

    Introduces simulation-capable federations and a mechanism to configure the Simulation Runtime that these federations use in both a persistent manner and with per-run overrides. For the former, the flwr federation simulation-config command is introduced; for the latter --federation-config can be used to dynamically override values at when submitting a run via flwr run. Updates documentation and provides a migration guide here. Refer to the updated Simulation Runtime guide for more details about running simulations with Flower.

  • Improve local SuperLink stability and configuration handling (#6797, #6873, #6874, #6889)

    Improves local SuperLink stability by improving SQLite bootstrap robustness and validating Control API availability before executing CLI calls. Allows magic values (":local:", ":local-in-memory:") for address fields in Flower configuration, which will be translated to the local SuperLink address. Ensures backward compatibility for .options-only connection configurations. Using .options fields in the Flower configuration (config.toml) is now deprecated. See Flower configuration guide for more details.

  • Add configurable FAB inclusion and exclusion rules (#6803, #6804, #6805, #6822, #6823, #6872, #6885)

    Introduces support for user-defined include and exclude patterns in FAB builds via configuration, with validation of pattern lists and extended matching capabilities. Ensures publish filters are applied before FAB build filters, standardizes metadata keys in pyproject.toml, and refactors supporting utilities. Updates documentation with guide on configuring inclusion and exclusion rules.

  • Introduce FAB format v1 validation rules and requirements (#6782, #6825, #6843, #6851, #6887)

    Introduces validation rules for FAB format version 1, requiring flwr-version-target to be specified and enforcing a lower bound for the flwr dependency in pyproject.toml. Adds license file requirements during FAB build.

  • Add non-blocking version update checks across Flower components (#6786, #6788, #6833, #6938)

    Adds non-blocking startup checks in the Flower CLI to detect newer versions of flwr in CLI. Allows disabling by setting environment variable FLWR_DISABLE_UPDATE_CHECK=1.

  • Support port 0 for automatic OS-assigned ports (#6795)

  • Add --version flag to Flower CLI components (#6781)

  • Add dynamic data seed option to FlowerTune LLM examples (#6831)

  • Add flwr federation remove-account command for managing federation membership (#6757, #6759, #6764, #6772, #6777, #6778, #6789)

  • Improve availability and reliability of message delivery and state handling (#6773, #6785, #6877, #6915)

  • Fix handling of scalar (0D) NumPy arrays in strategies and mods (#6783)

  • Improve documentation (#6332, #6742, #6771, #6834, #6838, #6910, #6929, #6941)

  • Improve CI/CD workflows and developer tooling (#6701, #6732, #6738, #6739, #6743, #6744, #6753, #6768, #6769, #6770, #6775, #6793, #6816, #6835)

  • General improvements (#6578, #6627, #6734, #6740, #6748, #6749, #6751, #6755, #6763, #6774, #6776, #6779, #6800, #6801, #6802, #6811, #6815, #6827, #6828, #6839, #6840, #6841, #6842, #6868, #6869, #6893, #6900, #6901, #6906, #6908, #6909, #6918, #6919, #6920, #6921, #6922, #6923, #6930, #6932)

    As always, many parts of the Flower framework and quality infrastructure were improved and updated.

Incompatible changes

  • Remove deprecated run_simulation Python entrypoint (#6752)

    Removes the previously deprecated run_simulation entrypoint to run simulations. The recommended way for launching simulations is flwr run. Refer to the quickstart-turorials for a short guide on how to run your simulations.

framework-1.27.0 Breaking risk
⚠ Upgrade required
  • Unpublished documentation versions v1.8.0–v1.16.0; use current versioned docs.
  • Configure custom Flower directory via `FLWR_HOME` environment variable instead of `--flwr-dir`.
Breaking changes
  • Removed deprecated CLI option `--flwr-dir`; use environment variable `FLWR_HOME` instead.
  • Removed `flower-simulation` CLI entrypoint; superseded by local SuperLink.
Notable features
  • Local SuperLink for managing local simulations (auto‑launches, enables `flwr list`, `flwr log`).
  • SuperLink log rotation with configurable `--log-file`, `--log-rotation-interval-hours`, and `--log-rotation-backup-count`.
  • Multi-federation management via new `flwr federation` CLI commands (create, add‑supernode, remove‑supernode, archive, invite).
Full changelog

Thanks to our contributors

We would like to give our special thanks to all the contributors who made the new version of Flower possible (in git shortlog order):

Charles Beauville, Chong Shen Ng, Daniel J. Beutel, Heng Pan, Javier, Micah Sheller, Mohammad Naseri, Roma Klapaukh, Ruth Galindo, Taner Topal, Yan Gao

What's new?

Incompatible changes

  • Unpublish v1.8.0-v1.16.0 framework documentation (#6621)

    Unpublishes very old documentation versions that are no longer compatible with the updated documentation structure and release workflow.

  • Drop deprecated --flwr-dir CLI option (#6677)

    Removes the deprecated --flwr-dir option from CLI commands. A custom Flower directory can still be configured using the FLWR_HOME environment variable.

  • Remove flower-simulation CLI entrypoint (#6628)

    Removes the flower-simulation CLI entrypoint. With the introduction of local SuperLink, this command is no longer needed.

v1.26.1 Bug fix

Fixed client resource handling in local simulations to correctly propagate backend configuration settings such as CPU and GPU allocations.

Full changelog

Thanks to our contributors

We would like to give our special thanks to all the contributors who made the new version of Flower possible (in git shortlog order):

Charles Beauville, Chong Shen Ng, Copilot, Daniel J. Beutel, Heng Pan, Javier, Taner Topal

What's new?

  • Fix client resource handling in local simulations (#6536)

    Fix an issue in local simulations where backend configuration is not correctly propagated, causing virtual client resource settings such as CPU and GPU allocations in the Flower Configuration to be ignored.

  • Update framework documentation (#6528, #6530)

  • General improvements (#6526, #6493, #6534, #6531, #6523, #6529, #6501)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
6,924
Forks
1,198
Languages
Python Jupyter Notebook TypeScript

Install & Platforms

Install via
pip
Platforms
linux macos windows arm64

Community & Support

Beta — feedback welcome: [email protected]