{"data":{"slug":"flwrlabs-flower","name":"flower","tagline":"A Friendly Federated AI Framework","github_url":"https://github.com/flwrlabs/flower","owner":"flwrlabs","repo":"flower","owner_avatar_url":"https://avatars.githubusercontent.com/u/122113819?v=4","primary_language":"Python","stars":7067,"forks":1214,"topics":["ai","android","artificial-intelligence","cpp","deep-learning","federated-analytics","federated-learning","federated-learning-framework","fleet-intelligence","fleet-learning","flower","framework","grpc","ios","machine-learning","python","pytorch","raspberry-pi","scikit-learn","tensorflow"],"archived":false,"github_pushed_at":"2026-08-04T17:02:09+00:00","maintenance_label":"Very active","url":"https://www.graphcanon.com/tools/flwrlabs-flower","markdown_url":"https://www.graphcanon.com/tools/flwrlabs-flower.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/flwrlabs-flower","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=flwrlabs-flower","description":"Flower: A Friendly Federated AI Framework","homepage_url":"https://flower.ai","license":"Apache-2.0","open_issues":368,"watchers":41,"ai_summary":"Flower is a customizable, extendable, framework-agnostic federated learning system supporting multiple machine learning frameworks.","readme_excerpt":"# Flower: A Friendly Federated AI Framework\n\n<p align=\"center\">\n  <a href=\"https://flower.ai/\">\n    <img src=\"https://flower.ai/static/images/icon/icon.png\" width=\"140px\" alt=\"Flower Website\" />\n  </a>\n</p>\n<p align=\"center\">\n    <a href=\"https://flower.ai/\">Website</a> |\n    <a href=\"https://flower.ai/blog\">Blog</a> |\n    <a href=\"https://flower.ai/docs/\">Docs</a> |\n    <a href=\"https://flower.ai/join-slack\">Slack</a>\n    <br /><br />\n</p>\n\n\n\n\n\n\n\n\nFlower (`flwr`) is a framework for building federated AI systems. The\ndesign of Flower is based on a few guiding principles:\n\n- **Customizable**: Federated learning systems vary wildly from one use case to\n  another. Flower allows for a wide range of different configurations depending\n  on the needs of each individual use case.\n\n- **Extendable**: Flower originated from a research project at the University of\n  Oxford, so it was built with AI research in mind. Many components can be\n  extended and overridden to build new state-of-the-art systems.\n\n- **Framework-agnostic**: Different machine learning frameworks have different\n  strengths. Flower can be used with any machine learning framework, for\n  example, [PyTorch](https://pytorch.org), [TensorFlow](https://tensorflow.org), [Hugging Face Transformers](https://huggingface.co/), [PyTorch Lightning](https://pytorchlightning.ai/), [scikit-learn](https://scikit-learn.org/), [JAX](https://jax.readthedocs.io/), [TFLite](https://tensorflow.org/lite/), [MONAI](https://docs.monai.io/en/latest/index.html), [fastai](https://www.fast.ai/), [MLX](https://ml-explore.github.io/mlx/build/html/index.html), [XGBoost](https://xgboost.readthedocs.io/en/stable/), [CatBoost](https://catboost.ai/), [LeRobot](https://github.com/huggingface/lerobot) for federated robots, [Pandas](https://pandas.pydata.org/) for federated analytics, or even raw [NumPy](https://numpy.org/)\n  for users who enjoy computing gradients by hand.\n\n- **Understandable**: Flower is written with maintainability in mind. The\n  community is encouraged to both read and contribute to the codebase.\n\nMeet the Flower community on [flower.ai](https://flower.ai)!\n\n## Federated Learning Tutorial\n\nFlower's goal is to make federated learning accessible to everyone. This series of tutorials introduces the fundamentals of federated learning and how to implement them in Flower.\n\n0. **[What is Federated Learning?](https://flower.ai/docs/framework/main/en/tutorial-series-what-is-federated-learning.html)**\n\n1. **[Get started with Flower](https://flower.ai/docs/framework/main/en/tutorial-series-get-started-with-flower.html)**\n\n2. **[Write your first Flower App](https://flower.ai/docs/framework/main/en/tutorial-series-write-your-first-flower-app.html)**\n\n3. **[Write your first Flower App with PyTorch](https://flower.ai/docs/framework/main/en/tutorial-series-write-your-first-flower-app-pytorch.html)**\n\n4. **[Use a federated learning strategy](https://flower.ai/docs/framework/main/en/tutorial-series-use-a-federated-learning-strategy-pytorch.html)**\n\n5. **[Customize a Flower Strategy](https://flower.ai/docs/framework/main/en/tutorial-series-build-a-strategy-from-scratch-pytorch.html)**\n\n6. **[Communicate Custom Messages](https://flower.ai/docs/framework/main/en/tutorial-series-customize-the-client-pytorch.html)**\n\nStay tuned, more tutorials are coming soon. Topics include **Privacy and Security in Federated Learning**, and **Scaling Federated Learning**.\n\n## Documentation\n\n[Flower Docs](https://flower.ai/docs):\n\n- [Installation](https://flower.ai/docs/framework/how-to-install-flower.html)\n- [Quickstart (TensorFlow)](https://flower.ai/docs/framework/tutorial-quickstart-tensorflow.html)\n- [Quickstart (PyTorch)](https://flower.ai/docs/framework/tutorial-quickstart-pytorch.html)\n- [Quickstart (Hugging Face)](https://flower.ai/docs/framework/tutorial-quickstart-huggingface.html)\n- [Quickstart (PyTorch Lightning)](https://flower.ai/docs/framework/tutorial-quickstart-pytorch-lightning.html)\n- [Quickstart (Pandas)](h","github_created_at":"2020-02-17T11:51:29+00:00","created_at":"2026-07-11T23:38:16.114531+00:00","updated_at":"2026-08-04T18:01:40.075658+00:00","categories":[{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"}],"tags":[{"slug":"ai-frameworks","name":"ai-frameworks"},{"slug":"federated-learning","name":"federated-learning"},{"slug":"python","name":"python"},{"slug":"pytorch","name":"pytorch"},{"slug":"tensorflow","name":"tensorflow"}],"trust":{"provenance":{"is_fork":false,"github_id":241095326,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-08-04T18:01:39.215Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":4,"days_since_push":0,"last_release_at":"2026-07-01T11:59:02Z"},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T23:38:18.018Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-08-04T18:01:39.768Z"},"languages":{"value":["python"],"source":"github.language","observed_at":"2026-08-04T18:01:39.768Z"},"license_spdx":{"value":"Apache-2.0","source":"github.license","observed_at":"2026-08-04T18:01:39.768Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["When you require support for a wide range of machine learning frameworks including PyTorch, TensorFlow, and scikit-learn to integrate federated learning","If your project benefits from an easily extendable design developed with AI research needs in mind"],"when_not_to_use":["Avoid if your use case demands real-time model updates or integration with specific ML frameworks not covered by Flower's framework support","Not recommended for projects where the federated learning setup requires extensive customization beyond what the extendable components offer"],"source":"enrich:decision_facts","observed_at":"2026-07-17T12:22:43.891Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"A customizable, extendable federated learning framework supporting multiple ML frameworks, coded in Python."}]}}