[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-flwrlabs--flower":3,"tool-flwrlabs--flower":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":75,"owner_website":81,"owner_url":82,"languages":83,"stars":122,"forks":123,"last_commit_at":124,"license":125,"difficulty_score":23,"env_os":126,"env_gpu":126,"env_ram":126,"env_deps":127,"category_tags":130,"github_topics":131,"view_count":151,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":152,"updated_at":153,"faqs":154,"releases":182},594,"flwrlabs\u002Fflower","flower","Flower: A Friendly Federated AI Framework","Flower 是一个旨在降低联邦学习门槛的友好开源框架，专门用于构建分布式人工智能系统。它解决了传统机器学习模式中必须集中存储数据所带来的隐私安全隐患，让用户能够在保护数据隐私的同时，利用分散在各终端的数据进行联合建模。\n\nFlower 特别适合 AI 开发者、算法研究人员以及需要合规处理敏感数据的团队。其技术亮点在于高度的框架无关性，支持 PyTorch、TensorFlow、Hugging Face 等多种主流深度学习库，甚至兼容纯 NumPy 计算。此外，Flower 源自牛津大学研究项目，设计注重可扩展性与代码可读性，允许用户根据具体需求自定义策略或覆盖组件。无论是初学者想快速上手联邦学习，还是资深工程师构建复杂系统，Flower 都能提供灵活且可靠的支撑，是探索隐私保护机器学习领域的理想伙伴。","# Flower: A Friendly Federated AI Framework\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fflower.ai\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fflwrlabs_flower_readme_06291447e525.png\" width=\"140px\" alt=\"Flower Website\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002F\">Website\u003C\u002Fa> |\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002Fblog\">Blog\u003C\u002Fa> |\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002Fdocs\u002F\">Docs\u003C\u002Fa> |\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002Fevents\u002Fflower-ai-summit-2026\">Summit\u003C\u002Fa> |\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002Fjoin-slack\">Slack\u003C\u002Fa>\n    \u003Cbr \u002F>\u003Cbr \u002F>\n\u003C\u002Fp>\n\n[![GitHub license](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fflwrlabs\u002Fflower)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fblob\u002Fmain\u002FLICENSE)\n[![PRs Welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)\n![Build](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Factions\u002Fworkflows\u002Fframework.yml\u002Fbadge.svg)\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fflwrlabs_flower_readme_34c50e933400.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fflwr)\n[![Docker Hub](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocker%20Hub-flwr-blue)](https:\u002F\u002Fhub.docker.com\u002Fu\u002Fflwr)\n[![Slack](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FChat-Slack-red)](https:\u002F\u002Fflower.ai\u002Fjoin-slack)\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:\u002F\u002Fpytorch.org), [TensorFlow](https:\u002F\u002Ftensorflow.org), [Hugging Face Transformers](https:\u002F\u002Fhuggingface.co\u002F), [PyTorch Lightning](https:\u002F\u002Fpytorchlightning.ai\u002F), [scikit-learn](https:\u002F\u002Fscikit-learn.org\u002F), [JAX](https:\u002F\u002Fjax.readthedocs.io\u002F), [TFLite](https:\u002F\u002Ftensorflow.org\u002Flite\u002F), [MONAI](https:\u002F\u002Fdocs.monai.io\u002Fen\u002Flatest\u002Findex.html), [fastai](https:\u002F\u002Fwww.fast.ai\u002F), [MLX](https:\u002F\u002Fml-explore.github.io\u002Fmlx\u002Fbuild\u002Fhtml\u002Findex.html), [XGBoost](https:\u002F\u002Fxgboost.readthedocs.io\u002Fen\u002Fstable\u002F), [CatBoost](https:\u002F\u002Fcatboost.ai\u002F), [LeRobot](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Flerobot) for federated robots, [Pandas](https:\u002F\u002Fpandas.pydata.org\u002F) for federated analytics, or even raw [NumPy](https:\u002F\u002Fnumpy.org\u002F)\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:\u002F\u002Fflower.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:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-what-is-federated-learning.html)**\n\n1. **[An Introduction to Federated Learning](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-get-started-with-flower-pytorch.html)**\n\n2. **[Using Strategies in Federated Learning](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-use-a-federated-learning-strategy-pytorch.html)**\n\n3. **[Customize a Flower Strategy](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-build-a-strategy-from-scratch-pytorch.html)**\n\n4. **[Communicate Custom Messages](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-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:\u002F\u002Fflower.ai\u002Fdocs):\n\n- [Installation](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-install-flower.html)\n- [Quickstart (TensorFlow)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-tensorflow.html)\n- [Quickstart (PyTorch)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-pytorch.html)\n- [Quickstart (Hugging Face)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-huggingface.html)\n- [Quickstart (PyTorch Lightning)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-pytorch-lightning.html)\n- [Quickstart (Pandas)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-pandas.html)\n- [Quickstart (fastai)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-fastai.html)\n- [Quickstart (JAX)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-jax.html)\n- [Quickstart (scikit-learn)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-scikitlearn.html)\n- [Quickstart (Android [TFLite])](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-android.html)\n- [Quickstart (iOS [CoreML])](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-ios.html)\n\n## Flower Baselines\n\nFlower Baselines is a collection of community-contributed projects that reproduce the experiments performed in popular federated learning publications. Researchers can build on Flower Baselines to quickly evaluate new ideas. The Flower community loves contributions! Make your work more visible and enable others to build on it by contributing it as a baseline!\n\n- [DASHA](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fdasha)\n- [DepthFL](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fdepthfl)\n- [FedBN](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedbn)\n- [FedMeta](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedmeta)\n- [FedMLB](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedmlb)\n- [FedPer](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedper)\n- [FedProx](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedprox)\n- [FedNova](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffednova)\n- [HeteroFL](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fheterofl)\n- [FedAvgM](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedavgm)\n- [FedRep](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedrep)\n- [FedStar](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedstar)\n- [FedWav2vec2](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedwav2vec2)\n- [FjORD](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffjord)\n- [MOON](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fmoon)\n- [niid-Bench](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fniid_bench)\n- [TAMUNA](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ftamuna)\n- [FedVSSL](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedvssl)\n- [FedXGBoost](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fhfedxgboost)\n- [FedPara](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedpara)\n- [FedAvg](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fflwr_baselines\u002Fflwr_baselines\u002Fpublications\u002Ffedavg_mnist)\n- [FedOpt](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fflwr_baselines\u002Fflwr_baselines\u002Fpublications\u002Fadaptive_federated_optimization)\n\nPlease refer to the [Flower Baselines Documentation](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fbaselines\u002F) for a detailed categorization of baselines and for additional info including:\n* [How to use Flower Baselines](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fbaselines\u002Fhow-to-use-baselines.html)\n* [How to contribute a new Flower Baseline](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fbaselines\u002Fhow-to-contribute-baselines.html)\n\n## Flower Usage Examples\n\nSeveral code examples show different usage scenarios of Flower (in combination with popular machine learning frameworks such as PyTorch or TensorFlow).\n\nQuickstart examples:\n\n- [Quickstart (TensorFlow)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-tensorflow)\n- [Quickstart (PyTorch)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-pytorch)\n- [Quickstart (Hugging Face)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-huggingface)\n- [Quickstart (PyTorch Lightning)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-pytorch-lightning)\n- [Quickstart (fastai)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-fastai)\n- [Quickstart (Pandas)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-pandas)\n- [Quickstart (JAX)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-jax)\n- [Quickstart (MONAI)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-monai)\n- [Quickstart (scikit-learn)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-sklearn)\n- [Quickstart (Android [TFLite])](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fandroid)\n- [Quickstart (iOS [CoreML])](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fios)\n- [Quickstart (MLX)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-mlx)\n- [Quickstart (XGBoost)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fxgboost-quickstart)\n- [Quickstart (CatBoost)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-catboost)\n\nOther [examples](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples):\n\n- [Raspberry Pi & Nvidia Jetson Tutorial](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fembedded-devices)\n- [PyTorch: From Centralized to Federated](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fpytorch-from-centralized-to-federated)\n- [Vertical FL](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fvertical-fl)\n- [Federated Finetuning of OpenAI's Whisper](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fwhisper-federated-finetuning)\n- [Federated Finetuning of Large Language Model](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fflowertune-llm)\n- [Federated Finetuning of a Vision Transformer](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fflowertune-vit)\n- [Advanced Flower with PyTorch](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fadvanced-pytorch)\n- [Comprehensive Flower+XGBoost](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fxgboost-comprehensive)\n- [Flower with KaplanMeierFitter from the lifelines library](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Ffederated-kaplan-meier-fitter)\n- [Sample Level Privacy with Opacus](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fopacus)\n- [Flower with a Tabular Dataset](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Ffl-tabular)\n\n## Community\n\nFlower is built by a wonderful community of researchers and engineers. [Join Slack](https:\u002F\u002Fflower.ai\u002Fjoin-slack) to meet them, [contributions](#contributing-to-flower) are welcome.\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fflwrlabs_flower_readme_29a7a8879be4.png\" \u002F>\n\u003C\u002Fa>\n\n## Citation\n\nIf you publish work that uses Flower, please cite Flower as follows:\n\n```bibtex\n@article{beutel2020flower,\n  title={Flower: A Friendly Federated Learning Research Framework},\n  author={Beutel, Daniel J and Topal, Taner and Mathur, Akhil and Qiu, Xinchi and Fernandez-Marques, Javier and Gao, Yan and Sani, Lorenzo and Kwing, Hei Li and Parcollet, Titouan and Gusmão, Pedro PB de and Lane, Nicholas D},\n  journal={arXiv preprint arXiv:2007.14390},\n  year={2020}\n}\n```\n\nPlease also consider adding your publication to the list of Flower-based publications in the docs, just open a Pull Request.\n\n## Contributing to Flower\n\nWe welcome contributions. Please see [CONTRIBUTING.md](CONTRIBUTING.md) to get started!\n","# Flower：一个友好的联邦人工智能 (Federated AI) 框架\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fflower.ai\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fflwrlabs_flower_readme_06291447e525.png\" width=\"140px\" alt=\"Flower 网站\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002F\">网站\u003C\u002Fa> |\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002Fblog\">博客\u003C\u002Fa> |\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002Fdocs\u002F\">文档\u003C\u002Fa> |\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002Fevents\u002Fflower-ai-summit-2026\">峰会\u003C\u002Fa> |\n    \u003Ca href=\"https:\u002F\u002Fflower.ai\u002Fjoin-slack\">Slack\u003C\u002Fa>\n    \u003Cbr \u002F>\u003Cbr \u002F>\n\u003C\u002Fp>\n\n[![GitHub 许可证](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fflwrlabs\u002Fflower)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fblob\u002Fmain\u002FLICENSE)\n[![欢迎提交 PR](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fblob\u002Fmain\u002FCONTRIBUTING.md)\n![构建状态](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Factions\u002Fworkflows\u002Fframework.yml\u002Fbadge.svg)\n[![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fflwrlabs_flower_readme_34c50e933400.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fflwr)\n[![Docker Hub](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocker%20Hub-flwr-blue)](https:\u002F\u002Fhub.docker.com\u002Fu\u002Fflwr)\n[![Slack 聊天](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FChat-Slack-red)](https:\u002F\u002Fflower.ai\u002Fjoin-slack)\n\nFlower (`flwr`) 是一个用于构建联邦人工智能 (Federated AI) 系统的框架。\nFlower 的设计基于以下几个指导原则：\n\n- **可定制 (Customizable)**：联邦学习 (Federated Learning) 系统在不同应用场景中差异巨大。Flower 允许根据每个具体用例的需求进行广泛的配置。\n\n- **可扩展 (Extendable)**：Flower 起源于牛津大学的一个研究项目，因此是专为 AI 研究而构建的。许多组件都可以扩展和覆盖，以构建新的最先进系统。\n\n- **与框架无关 (Framework-agnostic)**：不同的机器学习 (Machine Learning) 框架各有优势。Flower 可与任何机器学习框架配合使用，例如 [PyTorch](https:\u002F\u002Fpytorch.org)、[TensorFlow](https:\u002F\u002Ftensorflow.org)、[Hugging Face Transformers](https:\u002F\u002Fhuggingface.co\u002F)、[PyTorch Lightning](https:\u002F\u002Fpytorchlightning.ai\u002F)、[scikit-learn](https:\u002F\u002Fscikit-learn.org\u002F)、[JAX](https:\u002F\u002Fjax.readthedocs.io\u002F)、[TFLite](https:\u002F\u002Ftensorflow.org\u002Flite\u002F)、[MONAI](https:\u002F\u002Fdocs.monai.io\u002Fen\u002Flatest\u002Findex.html)、[fastai](https:\u002F\u002Fwww.fast.ai\u002F)、[MLX](https:\u002F\u002Fml-explore.github.io\u002Fmlx\u002Fbuild\u002Fhtml\u002Findex.html)、[XGBoost](https:\u002F\u002Fxgboost.readthedocs.io\u002Fen\u002Fstable\u002F)、[CatBoost](https:\u002F\u002Fcatboost.ai\u002F)、[LeRobot](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Flerobot) 用于联邦机器人，[Pandas](https:\u002F\u002Fpandas.pydata.org\u002F) 用于联邦分析，或者甚至原始的 [NumPy](https:\u002F\u002Fnumpy.org\u002F) 供喜欢手动计算梯度的用户使用。\n\n- **易于理解 (Understandable)**：Flower 的编写考虑了可维护性。鼓励社区阅读并为代码库做出贡献。\n\n在 [flower.ai](https:\u002F\u002Fflower.ai) 上结识 Flower 社区！\n\n## 联邦学习 (Federated Learning) 教程\n\nFlower 的目标是让每个人都能够轻松使用联邦学习 (Federated Learning)。本系列教程介绍了联邦学习 (Federated Learning) 的基础知识以及如何在 Flower 中实现它们。\n\n0. **[什么是联邦学习 (Federated Learning)?](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-what-is-federated-learning.html)**\n\n1. **[联邦学习 (Federated Learning) 入门](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-get-started-with-flower-pytorch.html)**\n\n2. **[在联邦学习 (Federated Learning) 中应用策略](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-use-a-federated-learning-strategy-pytorch.html)**\n\n3. **[自定义 Flower 策略](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-build-a-strategy-from-scratch-pytorch.html)**\n\n4. **[通信自定义消息](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-customize-the-client-pytorch.html)**\n\n敬请期待，更多教程即将推出。主题包括 **联邦学习 (Federated Learning) 中的隐私与安全**，以及 **扩展联邦学习 (Federated Learning)**。\n\n## 文档\n\n[Flower 文档](https:\u002F\u002Fflower.ai\u002Fdocs):\n\n- [安装](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-install-flower.html)\n- [快速开始 (TensorFlow)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-tensorflow.html)\n- [快速开始 (PyTorch)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-pytorch.html)\n- [快速开始 (Hugging Face)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-huggingface.html)\n- [快速开始 (PyTorch Lightning)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-pytorch-lightning.html)\n- [快速开始 (Pandas)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-pandas.html)\n- [快速开始 (fastai)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-fastai.html)\n- [快速开始 (JAX)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-jax.html)\n- [快速开始 (scikit-learn)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-scikitlearn.html)\n- [快速开始 (Android [TFLite])](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-android.html)\n- [快速开始 (iOS [CoreML])](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-ios.html)\n\n## Flower 基线 (Baselines)\n\nFlower 基线是一个集合了社区贡献项目的合集，用于复现流行联邦学习 (Federated Learning) 出版物中进行的实验。研究人员可以基于 Flower 基线快速评估新想法。Flower 社区热爱贡献！通过将其作为基线 (Baseline) 进行贡献，让您的工作获得更高关注度，并使他人能够在此基础上构建！\n\n- [DASHA](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fdasha)\n- [DepthFL](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fdepthfl)\n- [FedBN](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedbn)\n- [FedMeta](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedmeta)\n- [FedMLB](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedmlb)\n- [FedPer](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedper)\n- [FedProx](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedprox)\n- [FedNova](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffednova)\n- [HeteroFL](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fheterofl)\n- [FedAvgM](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedavgm)\n- [FedRep](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedrep)\n- [FedStar](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedstar)\n- [FedWav2vec2](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedwav2vec2)\n- [FjORD](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffjord)\n- [MOON](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fmoon)\n- [niid-Bench](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fniid_bench)\n- [TAMUNA](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ftamuna)\n- [FedVSSL](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedvssl)\n- [FedXGBoost](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fhfedxgboost)\n- [FedPara](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Ffedpara)\n- [FedAvg](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fflwr_baselines\u002Fflwr_baselines\u002Fpublications\u002Ffedavg_mnist)\n- [FedOpt](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fbaselines\u002Fflwr_baselines\u002Fflwr_baselines\u002Fpublications\u002Fadaptive_federated_optimization)\n\n请参考 [Flower 基线文档](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fbaselines\u002F) 以获取基线的详细分类以及包括以下内容的附加信息：\n* [如何使用 Flower 基线](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fbaselines\u002Fhow-to-use-baselines.html)\n* [如何贡献新的 Flower 基线](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fbaselines\u002Fhow-to-contribute-baselines.html)\n\n## Flower 使用示例\n\n多个代码示例展示了 Flower 的不同使用场景（结合流行的机器学习框架，如 PyTorch 或 TensorFlow）。\n\n快速入门示例：\n\n- [快速入门 (TensorFlow)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-tensorflow)\n- [快速入门 (PyTorch)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-pytorch)\n- [快速入门 (Hugging Face)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-huggingface)\n- [快速入门 (PyTorch Lightning)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-pytorch-lightning)\n- [快速入门 (fastai)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-fastai)\n- [快速入门 (Pandas)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-pandas)\n- [快速入门 (JAX)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-jax)\n- [快速入门 (MONAI)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-monai)\n- [快速入门 (scikit-learn)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-sklearn)\n- [快速入门 (Android [TFLite])](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fandroid)\n- [快速入门 (iOS [CoreML])](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fios)\n- [快速入门 (MLX)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-mlx)\n- [快速入门 (XGBoost)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fxgboost-quickstart)\n- [快速入门 (CatBoost)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fquickstart-catboost)\n\n其他 [示例](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples)：\n\n- [树莓派与 Nvidia Jetson 教程](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fembedded-devices)\n- [PyTorch：从集中式到联邦式](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fpytorch-from-centralized-to-federated)\n- [垂直联邦学习 (Vertical FL)](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fvertical-fl)\n- [OpenAI 的 Whisper 的联邦微调](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fwhisper-federated-finetuning)\n- [大型语言模型的联邦微调](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fflowertune-llm)\n- [视觉 Transformer 的联邦微调](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fflowertune-vit)\n- [高级 PyTorch Flower](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fadvanced-pytorch)\n- [全面的 Flower+XGBoost](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fxgboost-comprehensive)\n- [使用 lifelines 库中的 KaplanMeierFitter 的 Flower](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Ffederated-kaplan-meier-fitter)\n- [使用 Opacus 的样本级隐私保护](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fopacus)\n- [带有表格数据集的 Flower](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Ffl-tabular)\n\n## 社区\n\nFlower 由一群出色的研究人员和工程师构建。[加入 Slack](https:\u002F\u002Fflower.ai\u002Fjoin-slack) 来认识他们，[贡献](#contributing-to-flower) 是受欢迎的。\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fflwrlabs_flower_readme_29a7a8879be4.png\" \u002F>\n\u003C\u002Fa>\n\n## 引用\n\n如果您发表了使用 Flower 的工作，请按以下方式引用 Flower：\n\n```bibtex\n@article{beutel2020flower,\n  title={Flower: A Friendly Federated Learning Research Framework},\n  author={Beutel, Daniel J and Topal, Taner and Mathur, Akhil and Qiu, Xinchi and Fernandez-Marques, Javier and Gao, Yan and Sani, Lorenzo and Kwing, Hei Li and Parcollet, Titouan and Gusmão, Pedro PB de and Lane, Nicholas D},\n  journal={arXiv preprint arXiv:2007.14390},\n  year={2020}\n}\n```\n\n也请考虑将您的出版物添加到文档中的基于 Flower 的出版物列表中，只需打开一个 Pull Request (拉取请求)。\n\n## 为 Flower 做贡献\n\n我们欢迎贡献。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 开始！","# Flower 快速上手指南\n\nFlower (`flwr`) 是一个友好的联邦 AI 框架，旨在让每个人都能轻松构建联邦学习系统。它支持多种主流机器学习框架（如 PyTorch、TensorFlow、Hugging Face 等），具有高度的可定制性和可扩展性。\n\n## 环境准备\n\n- **操作系统**: Linux, macOS, Windows\n- **Python**: 推荐版本 3.8 及以上\n- **依赖管理**: `pip`\n\n## 安装步骤\n\n### 1. 基础安装\n使用 pip 安装 Flower 核心包。\n\n```bash\npip install flwr\n```\n\n> **💡 国内开发者提示**：为了加快下载速度，建议使用国内 PyPI 镜像源（如清华大学镜像）：\n> ```bash\n> pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple flwr\n> ```\n\n### 2. 安装特定框架支持\n根据您使用的机器学习框架，建议安装对应的扩展包以获得最佳体验：\n\n```bash\n# PyTorch 支持\npip install flwr[pytorch]\n\n# TensorFlow 支持\npip install flwr[tensorflow]\n\n# 安装所有常用框架支持\npip install flwr[all]\n```\n\n详细安装要求请参考官方文档：[Installation](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-install-flower.html)\n\n## 基本使用\n\nFlower 的核心架构包含 **客户端 (Client)** 和 **服务器 (Server)**。以下是一个基于 PyTorch 的最小化使用示例流程。\n\n### 1. 定义客户端逻辑\n在客户端编写模型训练逻辑，并将其封装为 Flower 的 `Client`。\n\n```python\nimport flwr as fl\nimport torch\n\ndef train_fn(context):\n    # 加载本地数据并训练模型\n    # ...\n    return model_parameters\n\nclient = fl.client.NumPyClient(\n    get_parameters=train_fn,\n    fit=train_fn,\n    evaluate=train_fn\n)\n```\n\n### 2. 配置服务器策略\n选择或自定义聚合策略（例如 `FedAvg`）。\n\n```python\nfrom flwr.server.strategy import FedAvg\n\nstrategy = FedAvg(\n    fraction_fit=1.0,\n    fraction_evaluate=1.0\n)\n```\n\n### 3. 启动服务器\n运行服务器以协调多个客户端的训练过程。\n\n```bash\npython server.py\n```\n\n> **📝 完整示例**：上述仅为概念演示，完整的可运行代码请查看官方教程：\n> - [Quickstart (PyTorch)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-pytorch.html)\n> - [Quickstart (TensorFlow)](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-tensorflow.html)\n\n## 更多资源\n\n- **官方文档**: [Flower Docs](https:\u002F\u002Fflower.ai\u002Fdocs\u002F)\n- **联邦学习教程系列**: [Tutorial Series](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Ftutorial-series-what-is-federated-learning.html)\n- **社区交流**: [Join Slack](https:\u002F\u002Fflower.ai\u002Fjoin-slack)\n- **GitHub 仓库**: [flwrlabs\u002Fflower](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower)","某区域医疗联盟希望联合多家医院训练肺炎诊断模型，但受限于隐私法规，患者影像数据严禁出域共享。\n\n### 没有 flower 时\n- 团队需从零编写联邦通信协议，耗时数月且容易在数据传输环节出现安全漏洞。\n- 不同医院使用的深度学习框架各异，强行统一标准导致大量重复的适配工作。\n- 缺乏成熟的参数聚合方案，手动实现平均算法导致模型收敛速度慢且效果差。\n- 隐私保护机制需自行设计，难以满足严格的医疗数据合规审计要求。\n\n### 使用 flower 后\n- flower 提供标准化的客户端与服务端架构，几天内即可快速部署联邦节点。\n- 支持 PyTorch、TensorFlow 等主流框架，无缝对接各医院现有的 AI 开发环境。\n- 内置 FedAvg 等优化策略，开箱即用且可根据特定业务需求灵活定制扩展。\n- 原生支持加密传输与差分隐私配置，显著降低数据泄露风险并符合合规标准。\n\nflower 通过简化联邦学习的基础设施，让医疗机构能专注于算法创新而非底层通信维护。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fflwrlabs_flower_c8a0e66a.png","flwrlabs","Flower Labs","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fflwrlabs_367ee3e9.png","Advance Collaborative Superintelligence",null,"hello@flower.ai","https:\u002F\u002Fflower.ai","https:\u002F\u002Fgithub.com\u002Fflwrlabs",[84,88,92,96,99,103,107,111,115,118],{"name":85,"color":86,"percentage":87},"Python","#3572A5",71.9,{"name":89,"color":90,"percentage":91},"Jupyter Notebook","#DA5B0B",19.1,{"name":93,"color":94,"percentage":95},"Swift","#F05138",2.2,{"name":97,"color":98,"percentage":95},"TypeScript","#3178c6",{"name":100,"color":101,"percentage":102},"Shell","#89e051",1.2,{"name":104,"color":105,"percentage":106},"Kotlin","#A97BFF",0.8,{"name":108,"color":109,"percentage":110},"C++","#f34b7d",0.6,{"name":112,"color":113,"percentage":114},"HTML","#e34c26",0.5,{"name":116,"color":117,"percentage":114},"MDX","#fcb32c",{"name":119,"color":120,"percentage":121},"CSS","#663399",0.4,6793,1173,"2026-04-05T08:38:08","Apache-2.0","未说明",{"notes":128,"python":126,"dependencies":129},"1. 框架无关性：支持 PyTorch、TensorFlow、Hugging Face、Scikit-learn、JAX、NumPy 等多种机器学习框架，可根据需求灵活配置。\n2. 多端支持：提供 Android (TFLite)、iOS (CoreML)、Raspberry Pi、Nvidia Jetson 等移动端及嵌入式设备的快速入门示例。\n3. 部署方式：官方提供 Docker Hub 镜像，便于容器化部署。\n4. 社区与资源：拥有详细的文档、系列教程、基准测试项目 (Baselines) 以及 Slack 社区支持。\n5. 扩展性：设计初衷包含 AI 研究，组件可被扩展和覆盖以构建新系统。",[126],[15,13,14],[67,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150],"federated-learning","federated-learning-framework","federated-analytics","fleet-learning","fleet-intelligence","deep-learning","machine-learning","pytorch","scikit-learn","tensorflow","framework","grpc","python","ai","artificial-intelligence","raspberry-pi","android","cpp","ios",4,"2026-03-27T02:49:30.150509","2026-04-06T06:46:05.479086",[155,160,164,169,174,178],{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},2427,"在 Jetson Nano 上运行 Flower 示例时出现 ImportError: cannot import name 'NDArrays' 错误怎么办？","这通常是由于 Flower 版本不兼容导致的。建议参考相关 Issue #4399 以获取详细解决方案。同时，请确保您使用的是最新版本的 Flower，因为旧版本可能存在此导入问题。","https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fissues\u002F1706",{"id":161,"question_zh":162,"answer_zh":163,"source_url":159},2428,"在 Jetson 设备上运行脚本时遇到引号（quotation marks）问题如何解决？","该引号问题已在 Flower 的新版本中得到解决。请检查并确保您的环境使用的是较新的 Flower 版本，以避免此类解析错误。",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},2429,"如何为 Flower 项目贡献一个新的 Baseline？","首先阅读 [`first contribution` 文档](https:\u002F\u002Fflower.ai\u002Fdocs\u002Ffirst-time-contributors.html) 并完成 Flower 教程。然后阅读 Baselines 文档（如《如何使用 Flower Baselines》）。具体步骤包括：阅读论文、决定要复现的实验范围、按照《如何贡献 Flower Baseline》指南操作、验证代码是否复现了预期结果，并确保 README 清晰易懂且通过了格式化和类型检查。","https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fissues\u002F3756",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},2430,"实现 Federated Learning Baseline 时有哪些常见的技术兼容性挑战？","主要挑战包括 API 版本对齐（需确保代码与最新版 Flower 兼容，特别是正确使用 `clientApp` 和 `serverApp`）以及通信方式的复杂性。例如，从参数更新转向纯基于梯度的方法可能比 FedAvg 风格的策略更复杂。","https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fissues\u002F2046",{"id":175,"question_zh":176,"answer_zh":177,"source_url":168},2431,"关于 Baseline 的贡献讨论应该在哪里进行？","维护者建议将此类讨论迁移至 [Flower Discuss](https:\u002F\u002Fdiscuss.flower.ai\u002Ft\u002Ffederated-baseline-contributions\u002F602)。在那里，社区成员可以更方便地跟进工作，并在你准备提交 PR 时提供帮助。",{"id":179,"question_zh":180,"answer_zh":181,"source_url":173},2432,"如何参与 Flower 的“夏季可复现性”（Summer of Reproducibility）计划？","1. 加入 Flower Slack 并在 `#summer-of-reproducibility` 频道打招呼；2. 从精选列表中选择一个 Baseline；3. 定义贡献范围（如复现实验、使用的数据集）；4. 检查是否符合奖励资格（注意需符合美国\u002F欧盟相关法规，部分国家\u002F地区可能受限）。",[183,188,193,198,203,208,213,218,223,228,233,238,243,248,253,258,263,268,273,278],{"id":184,"version":185,"summary_zh":186,"released_at":187},101964,"framework-1.28.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`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` \r\n\r\n### What's new?\r\n\r\n- **Introduce federation-based simulation configuration and management** ([#6787](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6787), [#6790](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6790), [#6791](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6791), [#6806](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6806), [#6813](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6813), [#6820](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6820), [#6821](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6821), [#6826](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6826), [#6829](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6829), [#6837](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6837), [#6846](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6846), [#6848](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6848), [#6857](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6857), [#6858](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6858), [#6859](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6859), [#6860](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6860), [#6861](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6861), [#6865](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6865), [#6867](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6867), [#6882](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6882), [#6883](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6883), [#6888](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6888), [#6895](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6895), [#6907](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6907), [#6934](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6934))\r\n\r\n  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](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002F1.28\u002Fen\u002Fhow-to-upgrade-to-flower-1.28.html). Refer to the updated [Simulation Runtime guide](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002F1.28\u002Fen\u002Fhow-to-run-simulations.html) for more details about running simulations with Flower.\r\n\r\n- **Improve local SuperLink stability and configuration handling** ([#6797](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6797), [#6873](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6873), [#6874](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6874), [#6889](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6889))\r\n\r\n  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](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002F1.28\u002Fen\u002Fref-flower-configuration.html#local-simulation-example) for more details.\r\n\r\n- **Add configurable FAB inclusion and exclusion rules** ([#6803](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6803), [#6804](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6804), [#6805](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6805), [#6822](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6822), [#6823](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6823), [#6872](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6872), [#6885](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6885))\r\n\r\n  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](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002F1.28\u002Fen\u002Fhow-to-configure-pyproject-toml.html#defining-included-excluded-files) with guide on configuring inclusion and exclusion rules.\r\n\r\n- **Introduce FAB format v1 validation rules and requirements** ([#6782](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6782), [#6825](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6825), [#6843](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6843), [#6851](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6851), [#6887](https:\u002F\u002Fgithub.com\u002Fflwrlabs\u002Fflower\u002Fpull\u002F6887))\r\n\r\n  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 requiremen","2026-04-02T18:40:13",{"id":189,"version":190,"summary_zh":191,"released_at":192},101965,"framework-1.27.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Heng Pan`, `Javier`, `Micah Sheller`, `Mohammad Naseri`, `Roma Klapaukh`, `Ruth Galindo`, `Taner Topal`, `Yan Gao`\r\n\r\n### What's new?\r\n\r\n- **Introduce local SuperLink for managing local simulations** ([#6599](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6599), [#6717](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6717))\r\n\r\n  Local simulations are now managed by a local SuperLink, which is automatically launched on demand. This enables running most `flwr` CLI commands locally, such as `flwr list` to list previous runs and `flwr log` to retrieve logs from earlier runs. See the [documentation](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002F1.27\u002Fen\u002Fhow-to-run-flower-locally.html) for more details.\r\n\r\n- **Allow SuperLink log rotation** ([#6700](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6700))\r\n\r\n  Adds support for timed log rotation in SuperLink. Log files can now be configured using `--log-file`, `--log-rotation-interval-hours`, and `--log-rotation-backup-count`.\r\n\r\n- **Update framework documentation** ([#6533](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6533), [#6537](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6537), [#6541](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6541), [#6546](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6546), [#6551](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6551), [#6593](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6593), [#6598](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6598), [#6612](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6612), [#6615](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6615), [#6629](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6629), [#6631](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6631), [#6635](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6635), [#6681](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6681), [#6694](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6694), [#6710](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6710), [#6718](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6718), [#6719](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6719), [#6731](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6731))\r\n\r\n  Improves and fixes various parts of the framework documentation, including a new FAQ for unexpected Windows PowerShell output ([FAQ entry](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002F1.27\u002Fen\u002Fref-faq.html#faq-windows-unexpected-output)).\r\n\r\n- **Adopt release-branch workflow for Flower framework releases** ([#6560](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6560), [#6566](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6566), [#6594](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6594))\r\n\r\n  Adopts a release-branch workflow for the Flower framework, enabling releases from dedicated `release\u002Fframework-X.Y` branches and introducing the `framework-X.Y.Z` release tag format.\r\n\r\n- **Introduce versioned Flower documentation built from release branches** ([#6564](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6564), [#6569](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6569), [#6596](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6596), [#6607](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6607), [#6609](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6609), [#6610](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6610))\r\n\r\n  Introduces a new documentation release workflow where versioned Flower documentation is built and published from release branches. One documentation version is generated for each minor series (`X.Y.x`), allowing documentation updates after a release.\r\n\r\n- **Introduce multi-federation management via `flwr federation` CLI commands** ([#6559](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6559), [#6582](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6582), [#6583](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6583), [#6588](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6588), [#6589](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6589), [#6611](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6611), [#6618](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6618), [#6623](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6623), [#6625](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6625), [#6632](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6632), [#6658](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6658), [#6662](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6662), [#6673](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6673), [#6674](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6674), [#6676](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6676), [#6680](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6680), [#6695](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6695), [#6703](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6703), [#6705](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6705), [#6707](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6707), [#6708](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6708), [#6722](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6722), [#6725](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6725), [#6726](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6726))\r\n\r\n  On supported SuperLinks, users can manage federations using the `flwr federation` CLI. This includes creating federations (`flwr federation create`), adding or removing SuperNodes (`flwr federation add-supernode` \u002F `remove-supernode`), and archiving federations (`flwr federation","2026-03-10T12:21:47",{"id":194,"version":195,"summary_zh":196,"released_at":197},101966,"v1.26.1","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Charles Beauville`, `Chong Shen Ng`, `Copilot`, `Daniel J. Beutel`, `Heng Pan`, `Javier`, `Taner Topal` \r\n\r\n### What's new?\r\n\r\n- **Fix client resource handling in local simulations** ([#6536](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6536))\r\n\r\n  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.\r\n\r\n- **Update framework documentation** ([#6528](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6528), [#6530](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6530))\r\n\r\n- **General improvements** ([#6526](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6526), [#6493](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6493), [#6534](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6534), [#6531](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6531), [#6523](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6523), [#6529](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6529), [#6501](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6501))\r\n\r\n","2026-02-07T12:48:31",{"id":199,"version":200,"summary_zh":201,"released_at":202},101967,"v1.26.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Flippchen`, `Heng Pan`, `Iason Ofeidis`, `Javier`, `Jun S`, `Soumik Sarker`, `Taner Topal`, `Yan Gao`, `nihonge` \r\n\r\n### What's new?\r\n\r\n- **Introduce centralized `flwr` CLI configuration** ([#6240](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6240), [#6338](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6338), [#6343](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6343), [#6349](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6349), [#6354](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6354), [#6356](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6356), [#6357](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6357), [#6359](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6359), [#6362](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6362), [#6364](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6364), [#6365](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6365), [#6366](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6366), [#6367](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6367), [#6372](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6372), [#6376](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6376), [#6381](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6381), [#6382](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6382), [#6385](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6385), [#6386](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6386), [#6390](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6390), [#6400](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6400), [#6422](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6422), [#6423](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6423), [#6435](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6435), [#6439](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6439), [#6440](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6440), [#6441](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6441), [#6446](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6446), [#6481](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6481), [#6492](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6492), [#6502](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6502), [#6509](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6509), [#6513](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6513), [#6519](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6519))\r\n\r\n  Changes Flower CLI (`flwr`) configuration to introduce a new way to manage SuperLink connections and simulation settings in a central place (instead of Flower app's `pyproject.toml`). This enables `flwr` commands to be executed from any directory and allow reuse of named connections across different Flower apps. This change also removes the now obsolete `enable-account-auth` option. The central Flower CLI config fully replaces the legacy `federation` configuration in `pyproject.toml`, which is automatically migrated to the new Flower configuration format when running `flwr` commands. For usage details, see the [Flower CLI reference](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Fref-api-cli.html) and the [Flower configuration documentation](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fmain\u002Fen\u002Fref-flower-configuration.html).\r\n\r\n- **Enable automated database migrations on Flower version upgrades** ([#6345](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6345), [#6355](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6355), [#6370](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6370), [#6371](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6371), [#6378](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6378), [#6379](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6379), [#6380](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6380), [#6383](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6383), [#6384](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6384), [#6387](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6387), [#6388](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6388), [#6389](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6389), [#6396](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6396), [#6398](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6398), [#6402](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6402), [#6403](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6403), [#6404](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6404), [#6406](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6406), [#6407](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6407), [#6408](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6408), [#6410](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6410), [#6411](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6411), [#6424](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6424), [#6425](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6425), [#6426](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6426), [#6433](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6433), [#6436](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6436), [#6448](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6448), [#6450](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6450), [#6457](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6457), [#6459](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6459), [#6460](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6460), [#6469](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6469), [#6477](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6477), [#6478](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6478), [#6521](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6521))\r\n\r\n  Refactors Flower's internal states implementations to introduce Alembic-based schema migrations with autom","2026-02-05T17:44:50",{"id":204,"version":205,"summary_zh":206,"released_at":207},101968,"v1.25.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Chong Shen Ng`, `Daniel J. Beutel`, `Heng Pan`, `Javier`, `Mohammad Naseri`, `Soumik Sarker`, `William Lindskog`, `Yan Gao`, `sarahhfalco` \r\n\r\n### What's new?\r\n\r\n- **Track compute time and network traffic for runs** ([#6241](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6241), [#6242](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6242), [#6243](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6243), [#6244](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6244), [#6245](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6245), [#6249](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6249), [#6266](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6266), [#6267](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6267), [#6268](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6268), [#6269](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6269), [#6270](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6270), [#6271](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6271), [#6272](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6272), [#6273](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6273), [#6274](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6274), [#6275](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6275), [#6276](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6276), [#6279](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6279))\r\n\r\n  Flower now records compute time and network traffic for a run. The run detail view shown by `flwr list --run-id \u003Crun-id>` displays traffic exchanged between SuperLink and SuperNode, as well as compute time used by `ServerApp` and `ClientApp`.\r\n\r\n- **Refactor `flwr new` to pull apps from the Flower platform** ([#6251](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6251), [#6252](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6252), [#6258](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6258), [#6259](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6259), [#6260](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6260), [#6263](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6263), [#6265](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6265), [#6283](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6283), [#6284](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6284), [#6285](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6285), [#6292](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6292), [#6294](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6294), [#6302](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6302))\r\n\r\n  Refactors `flwr new` to fetch Flower apps directly from the Flower platform (see the [usage reference](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fref-api-cli.html#flwr-new)). This introduces new and updated quickstart examples (including NumPy and FlowerTune LLM), renames and updates existing examples, aligns CI to run against platform-backed examples, and updates related documentation and benchmark instructions.\r\n\r\n- **Migrate examples to the Message API and remove outdated Docker Compose as well as Tensorflow Privacy examples** ([#6232](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6232), [#6233](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6233), [#6238](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6238), [#6297](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6297), [#6304](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6304))\r\n\r\n  Migrates the scikit-learn, Vertical FL, and Opacus examples to the Message API, with the Vertical FL example also updated to use `flwr-datasets`. The outdated Docker Compose and Tensorflow Privacy examples are removed.\r\n\r\n- **Improve CLI output with human-readable durations** ([#6277](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6277), [#6296](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6296))\r\n\r\n  Updates the Flower CLI to display durations in a more human-friendly format (`xd xh xm xs`), automatically selecting appropriate units instead of the previous `HH:MM:SS` format.\r\n\r\n- **Update examples and baselines** ([#6234](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6234), [#6256](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6256), [#6257](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6257), [#6264](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6264), [#6280](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6280), [#6281](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6281), [#6286](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6286), [#6287](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6287), [#6288](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6288), [#6290](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6290), [#6291](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6291), [#6293](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6293))\r\n\r\n- **Improve documentation** ([#6229](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6229), [#6230](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6230), [#6255](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6255), [#6262](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6262))\r\n\r\n- **Update CI\u002FCD configuration** ([#6168](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6168), [#6246](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6246), [#6295](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6295), [#6305](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6305))\r\n\r\n- **General improvements** ([#6056](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6056), [#6085](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6085), [#6176](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6176), [#6235](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F","2025-12-16T09:46:37",{"id":209,"version":210,"summary_zh":211,"released_at":212},101969,"v1.24.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Patrick Foley`, `Robert Steiner`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n- **Add Python 3.13 support** ([#6116](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6116), [#6119](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6119), [#6132](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6132))\r\n\r\n  `flwr` now supports Python 3.13, with CI and dataset tests updated accordingly and `ray` bumped to ensure compatibility.\r\n\r\n- **Improve the `flwr list` view** ([#6117](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6117))\r\n\r\n  `flwr list` now shows fewer details by default, while providing expanded information when using the `--run-id` flag.\r\n\r\n- **Extend federation commands and internal APIs** ([#6067](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6067), [#6068](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6068), [#6078](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6078), [#6082](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6082), [#6086](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6086), [#6087](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6087), [#6088](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6088), [#6090](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6090), [#6091](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6091), [#6092](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6092), [#6093](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6093), [#6094](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6094), [#6098](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6098), [#6103](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6103), [#6105](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6105), [#6121](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6121), [#6122](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6122), [#6143](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6143), [#6152](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6152), [#6153](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6153), [#6154](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6154), [#6158](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6158), [#6165](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6165), [#6167](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6167))\r\n\r\n  These updates refine and extend the existing federation concept. `flwr federation show` and `flwr federation list` now provide clearer visibility into SuperNodes and runs in the default federation.\r\n\r\n- **Introduce unified app heartbeat mechanism** ([#6204](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6204), [#6206](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6206), [#6209](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6209), [#6210](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6210), [#6212](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6212), [#6213](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6213), [#6214](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6214), [#6215](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6215), [#6218](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6218), [#6219](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6219), [#6221](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6221), [#6224](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6224), [#6225](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6225), [#6226](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6226), [#6227](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6227))\r\n\r\n  Introduces a unified heartbeat mechanism for app processes, preventing hangs when an app process crashes without responding. The new system enables `flwr-serverapp` and `flwr-simulation` processes to exit more quickly when a run is stopped by the `flwr stop` command.\r\n\r\n- **Fix bugs** ([#6188](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6188), [#6171](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6171), [#6175](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6175), [#6207](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6207))\r\n\r\n  Resolves issues causing occasional missing or unregistered object IDs on lower-powered machines, prevent the `flwr-serverapp` process from hanging after being stopped via the CLI, and correct the `finished_at` timestamp and initial heartbeat interval for runs.\r\n\r\n- **Improve import performance** ([#6102](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6102))\r\n\r\n- **Improve internal SQLite database performance** ([#6178](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6178), [#6195](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6195))\r\n\r\n- **Update CI workflows and development tooling** ([#5242](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5242), [#6053](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6053), [#6080](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6080), [#6089](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6089), [#6108](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6108), [#6129](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6129), [#6130](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6130), [#6131](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6131), [#6135](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6135), [#6138](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6138), [#6142](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6142), [#6144](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6144), [#6156](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6156), [#6181](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6181), [#6187](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6187), [#6189](h","2025-11-30T16:04:13",{"id":214,"version":215,"summary_zh":216,"released_at":217},101970,"v1.23.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Adam Tupper`, `Alan Yi`, `Alireza Ghasemi`, `Charles Beauville`, `Chong Shen Ng`, `Daniel Anoruo`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Patrick Foley`, `Robert Steiner`, `Rohat Bozyil`, `Yan Gao`, `combe4259`, `han97901`, `maviva` \r\n\r\n### What's new?\r\n\r\n- **Enable dynamic SuperNode management via Flower CLI** ([#5953](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5953), [#5954](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5954), [#5955](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5955), [#5962](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5962), [#5968](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5968), [#5974](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5974), [#5977](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5977), [#5980](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5980), [#5981](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5981), [#5985](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5985), [#5986](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5986), [#5987](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5987), [#5988](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5988), [#5991](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5991), [#5998](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5998), [#6003](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6003), [#6004](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6004), [#6006](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6006), [#6009](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6009), [#6023](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6023), [#6028](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6028), [#6029](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6029), [#6037](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6037), [#6064](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6064), [#6070](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6070))\r\n\r\n\r\n- **Add migration guide for OpenFL to Flower** ([#5975](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5975))\r\n\r\n  Adds a migration guide to support OpenFL users as the project approaches archival. The guide explains how to transition existing OpenFL setups to Flower, providing step-by-step migration instructions.\r\n\r\n- **Add quantum federated learning example with PennyLane** ([#5852](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5852))\r\n\r\n  Introduces a new example demonstrating quantum federated learning using PennyLane. This example showcases how Flower can be integrated with quantum machine learning workflows—Flower is going quantum!\r\n\r\n- **Replace** `flwr ls` **with** `flwr list` **(keep alias for compatibility)** ([#5973](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5973))\r\n\r\n  The old `flwr ls` command remains available as an alias.\r\n\r\n- **Migrate examples and tutorials to Message API** ([#5950](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5950), [#5957](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5957), [#5963](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5963), [#5966](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5966))\r\n\r\n  Migrates the remaining examples and tutorials, including the 30-minute Flower tutorial, `whisper`, `quickstart-pandas`, and `federated-kaplan-meier-fitter`, to the new Message API for improved consistency and maintainability.\r\n\r\n- **Refactor SuperNode lifecycle** ([#6051](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6051), [#6052](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6052), [#6060](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6060), [#6061](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6061), [#6063](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6063), [#6069](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6069), [#6073](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6073))\r\n\r\n  Refactors the SuperNode lifecycle to align with the new management flow, streamlining SuperNode registration, activation, deactivation, and unregistration.\r\n\r\n- **Add deployment guide for multi-cluster OpenShift setups** ([#6001](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6001))\r\n\r\n- **Introduce file-based ObjectStore** ([#6040](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6040), [#6036](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6036), [#6008](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6008), [#6042](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6042))\r\n\r\n- **Improve documentation** ([#5936](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5936), [#5937](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5937), [#5943](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5943), [#5949](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5949), [#5956](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5956), [#5958](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5958), [#5972](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5972), [#5976](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5976), [#5983](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5983), [#5996](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5996), [#5999](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5999), [#6010](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6010), [#6018](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6018), [#6030](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F6030))\r\n\r\n- **Update dependencies and CI** ([#5932](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5932), [#5941](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5941), [#5944](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5944), [#5964](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflo","2025-11-03T14:50:10",{"id":219,"version":220,"summary_zh":221,"released_at":222},101971,"v1.22.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Heng Pan`, `Javier`, `Patrick Foley`, `William Lindskog`, `William Lindskog-Munzing`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n- **Migrate all strategies to Message API** ([#5845](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5845), [#5850](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5850), [#5851](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5851), [#5867](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5867), [#5884](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5884), [#5894](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5894), [#5904](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5904), [#5905](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5905), [#5908](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5908), [#5913](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5913), [#5914](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5914), [#5915](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5915), [#5917](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5917), [#5919](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5919), [#5920](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5920), [#5931](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5931))\r\n\r\n  Migrates and implements all federated learning strategies to support the new Message API. Strategies updated or introduced include FedAvg, FedOpt and its variants (FedAdam, FedYogi, FedAdagrad), FedProx, Krum, MultiKrum, FedAvgM, FedMedian, FedTrimmedAvg, QFedAvg, and Bulyan. Differential privacy strategies were also migrated, including both fixed and adaptive clipping mechanisms on the server and client sides.\r\n\r\n- **Migrate `flwr new` templates to Message API** ([#5901](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5901), [#5818](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5818), [#5893](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5893), [#5849](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5849), [#5883](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5883))\r\n\r\n  All `flwr new` templates have been updated to use the Message API. The PyTorch template based on the legacy API is retained and explicitly marked as legacy for those who prefer or require the older approach. A new template for `XGBoost` is introduced.\r\n\r\n- **Revamp main tutorials to use the Message API** ([#5861](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5861))\r\n\r\n  The primary tutorial series has been updated to showcase the Message API. The revamped content improves alignment with recent architectural changes and enhances learning clarity. See the updated tutorial: [Get started with Flower](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-series-get-started-with-flower-pytorch.html).\r\n\r\n- **Upgrade tutorials and how-to guides to the Message API** ([#5862](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5862), [#5877](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5877), [#5891](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5891), [#5895](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5895), [#5896](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5896), [#5897](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5897), [#5898](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5898), [#5906](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5906), [#5912](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5912), [#5916](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5916), [#5921](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5921), [#5922](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5922), [#5923](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5923), [#5924](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5924), [#5927](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5927), [#5928](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5928), [#5925](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5925))\r\n\r\n  All framework tutorials and how-to guides have been fully migrated to the Message API. This includes quickstarts for JAX, TensorFlow, PyTorch Lightning, MLX, FastAI, Hugging Face Transformers, and XGBoost, along with comprehensive updates to guides covering strategy design, differential privacy, checkpointing, client configuration, evaluation aggregation, and stateful client implementation. These changes ensure all learning resources are up-to-date, aligned with the current architecture, and ready for developers building on the Message API.\r\n\r\n- **Migrate and update examples to support the Message API** ([#5827](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5827), [#5830](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5830), [#5833](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5833), [#5834](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5834), [#5839](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5839), [#5840](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5840), [#5841](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5841), [#5860](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5860), [#5868](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5868), [#5869](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5869), [#5875](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5875), [#5876](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5876), [#5879](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5879), [#5880](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5880), [#5882](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5882), [#5887](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5887), [#5888]","2025-09-21T19:26:10",{"id":224,"version":225,"summary_zh":226,"released_at":227},101972,"v1.21.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Evram`, `Heng Pan`, `Javier`, `Robert Steiner`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n- **Introduce Message API strategies** ([#5710](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5710), [#5766](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5766), [#5770](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5770), [#5771](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5771), [#5774](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5774), [#5779](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5779), [#5787](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5787), [#5794](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5794), [#5798](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5798), [#5804](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5804), [#5807](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5807), [#5813](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5813), [#5824](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5824), [#5831](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5831), [#5838](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5838))\r\n\r\n  Introduces a new abstract base class `Strategy` that operate on `Message` replies, mirroring the design of those operating on `FitIns\u002FFitRes` or `EvaluateIns\u002FEvaluteRes` while providing more versatility on the type of payloads that can be federated with Flower. The first batch of `Message`-based strategies are: `FedAvg`, `FedOpt`, `FedAdam`, `FedAdagrad`, `FedYogi`, and fixed-clipping Differential Privacy strategies. More will follow in subsequent releases. A [migration guide](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-upgrade-to-message-api.html) has been added to help users transition their existing Flower Apps operating on the original `Strategy` and `NumPyClient` abstractions to the Message API.\r\n\r\n- **Introduce Flower SuperExec** ([#5659](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5659), [#5674](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5674), [#5678](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5678), [#5680](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5680), [#5682](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5682), [#5683](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5683), [#5685](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5685), [#5696](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5696), [#5699](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5699), [#5700](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5700), [#5701](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5701), [#5702](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5702), [#5703](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5703), [#5706](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5706), [#5713](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5713), [#5726](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5726), [#5731](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5731), [#5734](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5734), [#5735](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5735), [#5737](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5737), [#5751](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5751), [#5759](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5759), [#5811](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5811), [#5828](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5828))\r\n\r\n  SuperExec is a new component responsible for scheduling, launching, and managing app processes (e.g., `ServerApp`, `ClientApp`) within the Flower deployment runtime. It is automatically spawned when running a SuperLink or SuperNode in subprocess mode (default). This also introduces a token-based mechanism that improves security by assigning a unique token to each app execution. Supporting changes include new RPCs, protocol updates, plugin abstractions, and Docker image support for SuperExec. For more details, refer to the updated [Flower architecture explainer](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fexplanation-flower-architecture.html). Documentation has been revised to reflect the introduction of Flower SuperExec, including guides and tutorials such as quickstart with Docker, GCP deployment, and network communication to consistently use SuperExec.\r\n\r\n- **Update quickstart-pytorch to use Message API** ([#5785](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5785), [#5786](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5786), [#5802](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5802))\r\n\r\n  The `quickstart-pytorch` [tutorial](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Ftutorial-quickstart-pytorch.html) has been migrated to the Message API, using the new `FedAvg` strategy and the new `flwr new` template.\r\n\r\n- **New PyTorch template with Message API** ([#5784](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5784))\r\n\r\n  A new PyTorch template using the Message API is now available through `flwr new`.\r\n\r\n- **Add OpenShift deployment guide for Flower** ([#5781](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5781))\r\n\r\n  Introduces a [guide](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-run-flower-on-red-hat-openshift.html) for deploying Flower on Red Hat OpenShift, including setup steps and configuration examples.\r\n\r\n- **Improve Helm documentation** ([#5711](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5711), [#5733](htt","2025-09-10T10:01:53",{"id":229,"version":230,"summary_zh":231,"released_at":232},101973,"v1.20.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Heng Pan`, `Javier`, `Kumbham Ajay Goud`, `Robert Steiner`, `William Lindskog`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n- **Send\u002Freceive arbitrarily large models** ([#5552](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5552), [#5550](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5550), [#5600](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5600), [#5611](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5611), [#5614](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5614), [#5551](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5551))\r\n\r\n  Flower 1.20 can send and receive arbitrarily large models like LLMs, way beyond the 2GB limit imposed by gRPC. It does so by chunking messages sent and received. The best part? This happens automatically without the user having to do anything.\r\n\r\n- **Implement object-based messaging between SuperNode and ClientApp** ([#5540](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5540), [#5577](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5577), [#5581](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5581), [#5582](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5582), [#5583](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5583), [#5584](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5584), [#5585](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5585), [#5586](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5586), [#5587](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5587), [#5589](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5589), [#5590](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5590), [#5592](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5592), [#5595](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5595), [#5597](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5597), [#5598](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5598), [#5599](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5599), [#5602](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5602), [#5604](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5604), [#5605](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5605), [#5606](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5606), [#5607](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5607), [#5609](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5609), [#5613](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5613), [#5616](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5616), [#5624](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5624), [#5645](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5645))\r\n\r\n  Redesigns the messaging system to enable object-based communication between the SuperNode and ClientApp, replacing the previous message-coupled design. Introduces new RPCs and enhances the `ClientAppIo` and Fleet APIs to faciliate better object storage in SuperNode and decouple `ObjectStore` from `Message`, improving maintainability and extensibility. Several refactorings improve modularity, naming consistency, and model weight streaming.\r\n\r\n- **Refactor SuperNode to use NodeState exclusively** ([#5535](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5535), [#5536](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5536), [#5537](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5537), [#5541](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5541), [#5542](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5542), [#5610](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5610), [#5628](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5628))\r\n\r\n  Refactors SuperNode to rely solely on `NodeState` for managing all information, decoupling internal components for improved maintainability and clearer state handling. RPCs of the `ClientAppIo` API have been refactored accordingly, laying the groundwork for future concurrent ClientApps support.\r\n\r\n- **Enforce maximum size limit for FAB files** ([#5493](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5493))\r\n\r\n  Limits the size of FAB files to a maximum of 10MB to prevent oversized artifacts. Developers can reduce FAB size by excluding unnecessary files via the `.gitignore` file in the Flower app directory.\r\n\r\n- **Add CatBoost federated learning quickstart example** ([#5564](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5564))\r\n\r\n  This example shows how to use CatBoost with Flower for federated binary classification on the Adult Census Income dataset. It applies a tree-based bagging aggregation method. View [the example](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fexamples\u002Fquickstart-catboost.html) for more details.\r\n\r\n- **Fix Windows path issue in FAB builds** ([#5608](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5608))\r\n\r\n  Updates the way FAB files represent relative paths to their internal files to ensure consistency across different operating systems. This fixes an issue where a FAB built on Windows would fail integrity checks when run on UNIX-based systems (e.g., Ubuntu).\r\n\r\n- **Add explainer for `pyproject.toml` configuration** ([#5636](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5636))\r\n\r\n  Adds a guide explaining how to configure a Flower app using its `pyproject.toml` file. The documentation is available [here](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-configure-pyproject-toml.html).\r\n\r\n- **Improve `flwr new` templates with TOML comments and README links** ([#563","2025-07-29T12:19:42",{"id":234,"version":235,"summary_zh":236,"released_at":237},101974,"v1.19.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Adam Tupper`, `Andrej Jovanović`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Haoran Jie`, `Heng Pan`, `Javier`, `Kevin Ta`, `Mohammad Naseri`, `Ragnar`, `Robert Steiner`, `William Lindskog`, `ashley09`, `dennis-grinwald`, `sukrucildirr` \r\n\r\n### What's new?\r\n\r\n- **Revamp messaging system with content-addressable object model** ([#5513](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5513), [#5477](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5477), [#5424](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5424), [#5379](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5379), [#5353](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5353), [#5372](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5372), [#5507](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5507), [#5364](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5364), [#5517](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5517), [#5514](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5514), [#5342](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5342), [#5393](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5393), [#5508](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5508), [#5504](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5504), [#5335](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5335), [#5341](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5341), [#5430](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5430), [#5308](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5308), [#5487](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5487), [#5509](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5509), [#5438](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5438), [#5369](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5369), [#5354](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5354), [#5486](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5486), [#5380](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5380), [#5496](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5496), [#5399](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5399), [#5489](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5489), [#5446](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5446), [#5432](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5432), [#5456](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5456), [#5442](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5442), [#5462](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5462), [#5429](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5429), [#5497](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5497), [#5435](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5435), [#5371](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5371), [#5450](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5450), [#5384](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5384), [#5488](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5488), [#5434](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5434), [#5425](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5425), [#5475](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5475), [#5458](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5458), [#5494](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5494), [#5449](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5449), [#5492](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5492), [#5426](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5426), [#5445](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5445), [#5467](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5467), [#5474](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5474), [#5527](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5527))\r\n\r\n  Introduces a content-addressable messaging system that breaks messages into a tree of uniquely identified, SHA256-hashed objects. This model allows objects to be pushed and pulled efficiently, avoiding redundant uploads and enabling scalable message streaming and broadcasting. Core enhancements include the new `InflatableObject` abstraction and `ObjectStore` for storing and retrieving message content, with `Array`, `Message`, and `*Record` classes now inherit from `InflatableObject`. New utilities and RPCs facilitate recursive object handling, ID recomputation avoidance, and safe deletion. The framework's servicers, REST, and gRPC layers were refactored to integrate this system, improving real-world deployment scalability and communication efficiency.\r\n\r\n- **Improve user authorization and access control** ([#5428](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5428), [#5505](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5505), [#5506](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5506), [#5422](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5422), [#5510](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5510), [#5421](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5421), [#5420](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5420), [#5448](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5448), [#5447](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5447), [#5503](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5503), [#5501](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5501), [#5502](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5502), [#5511](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5511))\r\n\r\n  Improves user authorization feature that integrates with the existing authentication protocol. When authentication is enabled, commands like `flwr ls`, `flwr log`, and `flwr stop` are restricted to displaying or affecting only the runs submitted by the authenticated user. This is enforced usi","2025-06-17T10:19:49",{"id":239,"version":240,"summary_zh":241,"released_at":242},101975,"v1.18.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Alan Silva`, `Andrej Jovanović`, `Charles Beauville`, `Chong Shen Ng`, `Chunhui XU`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Guanheng Liu`, `Gustavo Bertoli`, `Heng Pan`, `Javier`, `Khoa Nguyen`, `Mohammad Naseri`, `Pinji Chen`, `Robert Steiner`, `Stephane Moroso`, `Taner Topal`, `William Lindskog`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n- **Add support for Python 3.12** ([#5238](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5238))\r\n\r\n  Python 3.12 is officially supported (Python 3.12 was in preview support since Flower 1.6). Python 3.13 support continues to be in preview until all dependencies officially support Python 3.13.\r\n\r\n- **Enable TLS connection for `flwr` CLI using CA certificates** ([#5227](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5227), [#5237](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5237), [#5253](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5253), [#5254](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5254))\r\n\r\n  `flwr` CLI now supports secure TLS connections to SuperLink instances with valid CA certificates. If no root certificates are provided, the CLI automatically uses the default CA certificates bundled with gRPC.\r\n\r\n- **Add `--version` and `-V` flags to display `flwr` version** ([#5236](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5236))\r\n\r\n  Users can run `flwr --version` or `flwr -V` to print the current Flower version. The update also adds `-h` as a shorthand for CLI help.\r\n\r\n- **Use Hugging Face `flwrlabs` datasets in FlowerTune templates** ([#5205](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5205))\r\n\r\n  FlowerTune templates switch to use datasets hosted under the `flwrlabs` organization on Hugging Face.\r\n\r\n- **Upgrade FedBN baseline to support `flwr` CLI** ([#5115](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5115))\r\n\r\n  Refactors the FedBN baseline to use the new Flower CLI, removes Hydra, migrates configs, enables result saving, adds run instructions, and ensures stateful clients.\r\n\r\n- **Fix bug in Shamir's secret sharing utilities affecting Secure Aggregation** ([#5252](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5252))\r\n\r\n  Refactors Shamir's secret sharing utilities to fix a bug impacting Secure Aggregation. Thanks to [Pinji Chen](mailto:cpj24@mails.tsinghua.edu.cn) and [Guanheng Liu](mailto:coolwind326@gmail.com) for their contributions.\r\n\r\n- **Ensure backward compatibility for `RecordDict`** ([#5239](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5239), [#5270](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5270))\r\n\r\n  The `RecordDict` (formerly `RecordSet`) now maintains full backward compatibility. Legacy usages of `RecordSet` and its properties are supported, with deprecation warnings logged when outdated references are used. Users are encouraged to transition to the updated `RecordDict` interface promptly to avoid future issues.\r\n\r\n- **Refactor and optimize CI\u002FCD for repository restructuring** ([#5202](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5202), [#5176](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5176), [#5200](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5200), [#5203](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5203), [#5210](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5210), [#5166](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5166), [#5214](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5214), [#5212](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5212), [#5209](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5209), [#5199](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5199), [#5204](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5204), [#5201](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5201), [#5191](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5191), [#5167](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5167), [#5248](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5248), [#5268](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5268), [#5251](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5251))\r\n\r\n  Improves CI\u002FCD workflows to align with repository changes. Updates issue templates, fixes Docker and docs jobs, enhances script compatibility, adds checks, and bumps tool versions to streamline development and deployment.\r\n\r\n- **Improve and clean up documentation** ([#5233](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5233), [#5179](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5179), [#5216](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5216), [#5211](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5211), [#5217](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5217), [#5198](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5198), [#5168](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5168), [#5215](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5215), [#5169](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5169), [#5171](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5171), [#5240](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5240), [#5259](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5259))\r\n\r\n  Removes outdated content, redundant CLI flags, and unnecessary sections; updates Docker READMEs and virtual environment setup guide; and syncs translation source texts.\r\n\r\n- **General Improvements** ([#5241](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5241), [#5180](http","2025-04-23T09:37:39",{"id":244,"version":245,"summary_zh":246,"released_at":247},101976,"v1.17.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Aline Almeida`, `Charles Beauville`, `Chong Shen Ng`, `Daniel Hinjos García`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Heng Pan`, `Javier`, `Robert Steiner`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n- **Allow registration of functions for custom message types** ([#5093](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5093))\r\n\r\n  Enables support for custom message types in `ServerApp` by allowing the `message_type` field to be set as `\"\u003Caction_type>.\u003Caction_name>\"`, where `\u003Caction_type>` is one of `train`, `evaluate`, or `query`, and `\u003Caction_name>` is a valid Python identifier.  Developers can now register handler functions for these custom message types using the decorator `@app.\u003Caction_type>(\"\u003Caction_name>\")`. For example, the `my_echo_fn` function is called when the `ServerApp` sends a message with `message_type` set to `\"query.echo\"`, and the `get_mean_value` function is called when it's `\"query.mean\"`:\r\n\r\n  ```python\r\n  app = ClientApp()\r\n\r\n  @app.query(\"echo\")\r\n  def my_echo_fn(message: Message, context: Context):\r\n      # Echo the incoming message\r\n      return Message(message.content, reply_to=message)\r\n\r\n  @app.query(\"mean\")\r\n  def get_mean_value(message: Message, context: Context):\r\n      # Calculate the mean value\r\n      mean = ...  # Replace with actual computation\r\n\r\n      # Wrap the result in a MetricRecord, then in a RecordDict\r\n      metrics = MetricRecord({\"mean\": mean})\r\n      content = RecordDict({\"metrics\": metrics})\r\n\r\n      return Message(content, reply_to=message)\r\n  ```\r\n\r\n- **Rename core Message API components for clarity and consistency** ([#5140](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5140), [#5133](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5133), [#5139](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5139), [#5129](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5129), [#5150](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5150), [#5151](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5151), [#5146](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5146), [#5152](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5152))\r\n\r\n  To improve clarity and ensure consistency across the Message API, the following renamings have been made:\r\n\r\n  - `Driver` → `Grid`\r\n  - `RecordSet` → `RecordDict`\r\n  - `ParametersRecord` → `ArrayRecord`\r\n  - `MetricsRecord` → `MetricRecord`\r\n  - `ConfigsRecord` → `ConfigRecord`\r\n\r\n  Backward compatibility is maintained for all the above changes, and deprecation notices have been introduced to support a smooth transition.\r\n\r\n- **Enable seamless conversions between `ArrayRecord`\u002F`Array` and NumPy\u002FPyTorch types** ([#4922](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4922), [#4920](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4920))\r\n\r\n  One-liner conversions are now supported between `Array` and `numpy.ndarray` or `torch.Tensor`, and between `ArrayRecord` (formerly `ParametersRecord`) and PyTorch `state_dict` or a list of `numpy.ndarray`. This simplifies workflows involving model parameters and tensor data structures. Example usage includes `ArrayRecord(model.state_dict())` and `array_record.to_torch_state_dict()`. Refer to the [ArrayRecord](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fref-api\u002Fflwr.common.ArrayRecord.html) and [Array](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fref-api\u002Fflwr.common.Array.html) documentation for details.\r\n\r\n- **Revamp message creation using `Message` constructor** ([#5137](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5137), [#5153](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5153))\r\n\r\n  Revamps the `Message` creation workflow by enabling direct instantiation via the `Message(...)` constructor. This deprecates the previous APIs and simplifies message creation:\r\n\r\n  - `Driver.create_message(...)` → `Message(...)`\r\n  - `\u003Csome_message>.create_reply(...)` → `Message(..., reply_to=\u003Csome_message>)`\r\n\r\n- **Stabilize low-level Message API** ([#5120](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5120))\r\n\r\n  With all the changes above, the stability of the low-level Message API has been significantly improved. All preview feature warnings have been removed, marking the completion of its transition out of experimental status.\r\n\r\n- **Add node availability check to reduce wait time** ([#4968](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4968))\r\n\r\n  Adds a node availability check to SuperLink. If the target SuperNode is offline, SuperLink automatically generates an error reply message when the ServerApp attempts to pull the reply. This mechanism helps avoid unnecessary delays in each round caused by waiting for responses from unavailable nodes.\r\n\r\n- **Enable extensible event logging for FleetServicer and ExecServicer** ([#4998](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4998), [#4997](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4997), [#4951](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4951), [#4950](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4950), [#5108](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5108))\r\n\r\n  Introduces the necessary hooks and infrastructure to ","2025-03-24T16:56:41",{"id":249,"version":250,"summary_zh":251,"released_at":252},101977,"v1.16.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Alan Silva`, `Andrej Jovanović`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Dimitris Stripelis`, `Heng Pan`, `Javier`, `Kevin Ta`, `Li Shaoyu`, `Mohammad Naseri`, `Taner Topal`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n- **Enhance `RecordSet` and `Array` for improved usability** ([#4963](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4963), [#4980](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4980), [#4918](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4918))\r\n\r\n  `RecordSet` now supports dictionary-like access, allowing interactions similar to built-in Python dictionaries. For example, instead of `recordset.parameters_records[\"model\"]`, users can simply use `recordset[\"model\"]`. This enhancement maintains backward compatibility with existing `recordset.*_records` properties.\r\n\r\n  Additionally, the `Array` class now accepts `numpy.ndarray` instances directly in its constructor, enabling instantiation with a NumPy array via `Array(your_numpy_ndarray)`.\r\n\r\n- **Support function-specific Flower Mods for `ClientApp`** ([#4954](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4954), [#4962](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4962))\r\n\r\n  Flower Mods can now be applied to individual functions within the `ClientApp` rather than affecting the entire application. This allows for more granular control. The documentation has been updated to reflect these changes — please refer to [How to Use Built-in Mods](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-use-built-in-mods.html#registering-function-specific-mods) for details.\r\n\r\n- **Introduce `@app.lifespan()` for lifecycle management** ([#4929](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4929), [#4986](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4986))\r\n\r\n  `ServerApp` and `ClientApp` now support `@app.lifespan()`, enabling custom enter\u002Fexit handlers for resource setup and cleanup. Throughout the entire FL training, these handlers in `ClientApp` may run multiple times as instances are dynamically managed.\r\n\r\n- **Add FedRAG example** ([#4955](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4955), [#5036](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5036), [#5042](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5042))\r\n\r\n  Adds a [FedRAG example](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fexamples\u002Ffedrag.html), integrating Federated Learning with Retrieval Augmented Generation (RAG). This approach allows Large Language Models (LLMs) to query distributed data silos without centrally aggregating the corpora, enhancing performance while preserving data privacy.\r\n\r\n- **Upgrade FedProx baseline to a Flower App** ([#4937](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4937))\r\n\r\n  Updates FedProx to the a Flower App by removing Hydra, migrating configs to `pyproject.toml`, using `ClientApp` and `ServerApp`, integrating `flwr-datasets` with `DistributionPartitioner`, enabling result saving, and updating `README.md`. This baseline now supports `flwr run`.\r\n\r\n- **Migrate framework to Message-based system** ([#4959](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4959), [#4993](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4993), [#4979](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4979), [#4999](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4999))\r\n\r\n  The Flower framework has been fully migrated from a `TaskIns`\u002F`TaskRes`-based system to a `Message`-based system, aligning with the user-facing `Message` class. This includes adding validator functions for `Message`, introducing `LinkState` methods that operate on `Message`, updating `LinkState` to use `Message`-only methods, and removing the `Task`-related code entirely.\r\n\r\n- **Introduce event logging extension points** ([#4948](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4948), [#5013](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5013))\r\n\r\n  Begins implementing an event logging system for SuperLink, allowing RPC calls to be logged when enabled. These changes introduce initial extension points.\r\n\r\n- **Increase default TTL and message size** ([#5011](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5011), [#5028](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5028))\r\n\r\n  The default TTL for messages is now 12 hours (up from 1 hour), and the gRPC message size limit has increased from 512MB to 2GB. TTL sets a hard limit on the time between the `ServerApp` sending an instruction and receiving a reply from the `ClientApp`.\r\n\r\n- **Improve documentation** ([#4945](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4945), [#4965](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4965), [#4994](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4994), [#4964](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4964), [#4991](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4991), [#5014](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5014), [#4970](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4970), [#4990](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4990), [#4978](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4978), [#4944](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4944), [#5022](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5022), [#5007](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F5007), [#4988](https","2025-03-11T16:31:56",{"id":254,"version":255,"summary_zh":256,"released_at":257},101978,"v1.15.2","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Charles Beauville`, `Heng Pan`, `Javier`, `Leandro Collier`, `Stephane Moroso`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n**Free processed messages in LinkState** ([#4934](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4934))\r\n\r\nWhen the ServerApp pulls the replies the SuperNodes sent to the SuperLink, these should be removed from the LinkState. In some situations, these weren't erased, which could lead to high memory utilization by the SuperLink.\r\n\r\n**Introduce Windows CI tests** ([#4908](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4908))\r\n\r\nWe continue improving the experience of running Flower on Windows. Now, an automated CI test is run to ensure compatibility.\r\n\r\n**Update Ray version (Simulation Engine)** ([#4926](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4926))\r\n\r\nThe Simulation Engine has been upgraded to a version of Ray that is compatible with Python 3.12.\r\n\r\n- **Update Documentation** ([#4915](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4915), [#4914](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4914))\r\n\r\n- **Other quality improvements** ([#4935](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4935), [#4936](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4936), [#4928](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4928), [#4924](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4924), [#4939](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4939))\r\n\r\n","2025-02-17T17:04:07",{"id":259,"version":260,"summary_zh":261,"released_at":262},101979,"v1.15.1","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Dimitris Stripelis`, `Heng Pan`, `Javier`, `Taner Topal`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n- **Improve time drift compensation in automatic SuperNode authentication** ([#4899](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4899))\r\n\r\n  In addition to allowing for a time delay (positive time difference), SuperLink now also accounts for time drift, which might result in negative time differences between timestamps in SuperLink and SuperNode during authentication.\r\n\r\n- **Rename constants for gRPC metadata** ([#4902](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4902))\r\n\r\n  All metadata keys in gRPC messages that previously used underscores (`_`) have been replaced with hyphens (`-`). Using underscores is not recommended in setups where SuperLink may be deployed behind load balancers or reverse proxies.\r\n\r\n- **Filtering out non-Fleet API requests at the `FleetServicer`** ([#4900](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4900))\r\n\r\n  The Fleet API endpoint will now reject gRPC requests that are not part of its API.\r\n\r\n- **Fix exit handlers mechanism for Windows** ([#4907](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4907))\r\n\r\n  The `SIGQUIT` [Python signal](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Fsignal.html) is not supported on Windows. This signal is now excluded when Flower is executed on Windows.\r\n\r\n- **Updated Examples** ([#4895](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4895), [#4158](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4158), [#4879](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4879))\r\n\r\n  Examples have been updated to the latest version of Flower. Some examples have also had their dependencies upgraded. The [Federated Finetuning of a Whisper model example](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fwhisper-federated-finetuning) has been updated to use the new Flower execution method: `flwr run`.\r\n\r\n- **Update FlowerTuneLLM Leaderboard evaluation scripts** ([#4919](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4910))\r\n\r\n  We have updated the package versions used in the evaluation scripts. There is still time to participate in the [Flower LLM Leaderboard](https:\u002F\u002Fflower.ai\u002Fbenchmarks\u002Fllm-leaderboard\u002F)!\r\n\r\n- **Update Documentation** ([#4897](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4897), [#4896](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4896), [#4898](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4898), [#4909](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4909))\r\n\r\n","2025-02-05T16:59:03",{"id":264,"version":265,"summary_zh":266,"released_at":267},101980,"v1.15.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Haoran Jie`, `Heng Pan`, `Ivelin Ivanov`, `Javier`, `Kevin Patel`, `Mohammad Naseri`, `Pavlos Bouzinis`, `Robert Steiner` \r\n\r\n### What's new?\r\n\r\n- **Enhance SuperNode authentication** ([#4767](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4767), [#4791](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4791), [#4765](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4765), [#4857](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4857), [#4867](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4867))\r\n\r\n  Enhances the SuperNode authentication system, making it more efficient and resilient against replay attacks. There's no longer a need to pass `--auth-superlink-private-key` and `--auth-superlink-public-key` when running the SuperLink. Additionally, Flower now enables automatic node authentication by default, preventing impersonation even when node authentication is not explicitly used. For more details, see the [documentation](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-authenticate-supernodes.html).\r\n\r\n- **Add guide for running Flower with Deployment Engine** ([#4811](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4811), [#4733](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4733))\r\n\r\n  Introduces the [How to run Flower with Deployment Engine](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-run-flower-with-deployment-engine.html) guide, providing detailed instructions on deploying Federated Learning in production environments using the Flower Deployment Engine.\r\n\r\n- **Add Flower Network Communication reference documentation** ([#4805](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4805))\r\n\r\n  Introduces the [*Flower Network Communication*](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fref-flower-network-communication.html) documentation, which details the network connections used in a deployed Flower federated AI system.\r\n\r\n- **Add LeRobot quickstart example** ([#4607](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4607), [#4816](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4816))\r\n\r\n  Introduces an example demonstrating federated training of a Diffusion policy on the PushT dataset using LeRobot and Flower. The dataset is partitioned with Flower Datasets, and the example runs best with a GPU. More details: [Flower LeRobot Example](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fexamples\u002Fquickstart-lerobot.html).\r\n\r\n- **Add video tutorial to simulation documentation** ([#4768](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4768))\r\n\r\n  The *Flower AI Simulation 2025* tutorial series is now available on YouTube. You can watch all the videos [here](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLNG4feLHqCWkdlSrEL2xbCtGa6QBxlUZb) or via the embedded previews in the [documentation](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-run-simulations.html). The accompanying code for the tutorial can be found in the [Flower GitHub repository](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fflower-simulation-step-by-step-pytorch).\r\n\r\n- **Introduce StatAvg baseline** ([#3921](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F3921))\r\n\r\n  StatAvg mitigates non-IID feature distributions in federated learning by sharing and aggregating data statistics before training. It is compatible with any FL aggregation strategy. More details: [StatAvg baseline](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fbaselines\u002Fstatavg.html).\r\n\r\n- **Allow setting log level via environment variable** ([#4860](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4860), [#4880](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4880), [#4886](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4886))\r\n\r\n  Log level can now be configured using the `FLWR_LOG_LEVEL` environment variable. For example, running `FLWR_LOG_LEVEL=DEBUG flower-superlink --insecure` will set the log level to DEBUG. For more details, see the [guide](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-configure-logging.html).\r\n\r\n- **Enable dynamic overrides for federation configuration in CLI** ([#4841](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4841), [#4843](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4843), [#4838](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4838))\r\n\r\n  Similar to how the `--run-config` flag allows overriding the run configuration in `flwr run`, the new `--federation-config` flag enables dynamic overrides for federation configurations. This flag is supported in all `flwr` CLI commands except `flwr build`, `flwr install`, and `flwr new`.\r\n\r\n- **Migrate TaskIns\u002FTaskRes to Message-based communication** ([#4311](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4311), [#4310](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4310), [#4849](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4849), [#4308](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4308), [#4307](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4307), [#4800](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4800), [#4309](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4309), [#4875](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4875), [#4874](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4874), [#4877](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4877), [#4876](https:\u002F\u002F","2025-01-31T11:37:56",{"id":269,"version":270,"summary_zh":271,"released_at":272},101981,"v1.14.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Heng Pan`, `Javier`, `Meng Yan`, `Mohammad Naseri`, `Robert Steiner`, `Taner Topal`, `Vidit Khandelwal`, `Yan Gao` \r\n\r\n### What's new?\r\n\r\n- **Introduce `flwr stop` command** ([#4647](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4647), [#4629](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4629), [#4694](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4694), [#4646](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4646), [#4634](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4634), [#4700](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4700), [#4684](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4684), [#4642](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4642), [#4682](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4682), [#4683](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4683), [#4639](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4639), [#4668](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4668), [#4658](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4658), [#4693](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4693), [#4704](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4704), [#4729](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4729))\r\n\r\n  The `flwr stop` command is now available to stop a submitted run. You can use it as follows:\r\n\r\n  - `flwr stop \u003Crun-id>`\r\n  - `flwr stop \u003Crun-id> [\u003Capp>] [\u003Cfederation>]`\r\n\r\n  This command instructs the SuperLink to terminate the specified run. While the execution of `ServerApp` and `ClientApp` processes will not be interrupted instantly, they will be informed of the stopped run and will gracefully terminate when they next communicate with the SuperLink.\r\n\r\n- **Add JSON format output for CLI commands** ([#4610](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4610), [#4613](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4613), [#4710](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4710), [#4621](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4621), [#4612](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4612), [#4619](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4619), [#4611](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4611), [#4620](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4620), [#4712](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4712), [#4633](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4633), [#4632](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4632), [#4711](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4711), [#4714](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4714), [#4734](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4734), [#4738](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4738))\r\n\r\n  The `flwr run`, `flwr ls`, and `flwr stop` commands now support JSON-formatted output using the `--format json` flag. This makes it easier to parse and integrate CLI output with other tools. Feel free to check the [\"How to Use CLI JSON output\"](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-use-cli-json-output.html) guide for details!\r\n\r\n- **Document Microsoft Azure deployment** ([#4625](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4625))\r\n\r\n  A new how-to guide shows a simple Flower deployment for [federated learning on Microsoft Azure](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fframework\u002Fhow-to-run-flower-on-azure.html) VM instances.\r\n\r\n- **Introduce OIDC user authentication infrastructure** ([#4630](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4630), [#4244](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4244), [#4602](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4602), [#4618](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4618), [#4717](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4717), [#4719](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4719), [#4745](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4745))\r\n\r\n  Flower has supported SuperNode authentication since Flower 1.9. This release adds initial extension points for user authentication via OpenID Connect (OIDC).\r\n\r\n- **Update FedRep baseline** ([#4681](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4681))\r\n\r\n  We have started the process of migrating some baselines from using `start_simulation` to be launched via `flwr run`. We chose `FedRep` as the first baseline to migrate due to its very impressive results. New baselines can be created following a `flwr run`-compatible format by starting from the `flwr new` template for baselines. We welcome contributions! Read more in the [how to contribute a baseline](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fbaselines\u002Fhow-to-contribute-baselines.html) documentation.\r\n\r\n- **Revamp simulation series tutorial** ([#4663](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4663), [#4696](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4696))\r\n\r\n  We have updated the [Step-by-step Tutorial Series for Simulations](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Ftree\u002Fmain\u002Fexamples\u002Fflower-simulation-step-by-step-pytorch). It now shows how to create and run Flower Apps via `flwr run`. The videos walk you through the process of creating custom strategies, effectively make use of metrics between `ClientApp` and `ServerApp`, create _global model_ checkpoints, log metrics to Weights & Biases, and more.\r\n\r\n- **Improve connection reliability** ([#4649](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4649), [#4636","2024-12-20T12:10:53",{"id":274,"version":275,"summary_zh":276,"released_at":277},101982,"v1.13.1","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Adam Narozniak`, `Charles Beauville`, `Heng Pan`, `Javier`, `Robert Steiner` \r\n\r\n### What's new?\r\n\r\n- **Fix `SimulationEngine` Executor for SuperLink** ([#4563](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4563), [#4568](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4568), [#4570](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4570))\r\n\r\n  Resolved an issue that prevented SuperLink from functioning correctly when using the `SimulationEngine` executor.\r\n\r\n- **Improve FAB build and install** ([#4571](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4571))\r\n\r\n  An updated FAB build and install process produces smaller FAB files and doesn't rely on `pip install` any more. It also resolves an issue where all files were unnecessarily included in the FAB file. The `flwr` CLI commands now correctly pack only the necessary files, such as `.md`, `.toml` and `.py`, ensuring more efficient and accurate packaging.\r\n\r\n- **Update** `embedded-devices` **example** ([#4381](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4381))\r\n\r\n  The example now uses the `flwr run` command and the Deployment Engine.\r\n\r\n- **Update Documentation** ([#4566](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4566), [#4569](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4569), [#4560](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4560), [#4556](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4556), [#4581](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4581), [#4537](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4537), [#4562](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4562), [#4582](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4582))\r\n\r\n  Enhanced documentation across various aspects, including updates to translation workflows, Docker-related READMEs, and recommended datasets. Improvements also include formatting fixes for dataset partitioning docs and better references to resources in the datasets documentation index.\r\n\r\n- **Update Infrastructure and CI\u002FCD** ([#4577](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4577), [#4578](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4578), [#4558](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4558), [#4551](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4551), [#3356](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F3356), [#4559](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4559), [#4575](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4575))\r\n\r\n- **General improvements** ([#4557](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4557), [#4564](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4564), [#4573](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4573), [#4561](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4561), [#4579](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4579), [#4572](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4572))\r\n\r\n  As always, many parts of the Flower framework and quality infrastructure were improved and updated.\r\n\r\n","2024-11-27T08:03:02",{"id":279,"version":280,"summary_zh":281,"released_at":282},101983,"v1.13.0","### Thanks to our contributors\r\n\r\nWe would like to give our special thanks to all the contributors who made the new version of Flower possible (in `git shortlog` order):\r\n\r\n`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Heng Pan`, `Javier`, `Mohammad Naseri`, `Robert Steiner`, `Waris Gill`, `William Lindskog`, `Yan Gao`, `Yao Xu`, `wwjang` \r\n\r\n### What's new?\r\n\r\n- **Introduce `flwr ls` command** ([#4460](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4460), [#4459](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4459), [#4477](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4477))\r\n\r\n  The `flwr ls` command is now available to display details about all runs (or one specific run). It supports the following usage options:\r\n\r\n  - `flwr ls --runs [\u003Capp>] [\u003Cfederation>]`: Lists all runs.\r\n  - `flwr ls --run-id \u003Crun-id> [\u003Capp>] [\u003Cfederation>]`: Displays details for a specific run.\r\n\r\n  This command provides information including the run ID, FAB ID and version, run status, elapsed time, and timestamps for when the run was created, started running, and finished.\r\n\r\n- **Fuse SuperLink and SuperExec** ([#4358](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4358), [#4403](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4403), [#4406](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4406), [#4357](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4357), [#4359](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4359), [#4354](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4354), [#4229](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4229), [#4283](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4283), [#4352](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4352))\r\n\r\n  SuperExec has been integrated into SuperLink, enabling SuperLink to directly manage ServerApp processes (`flwr-serverapp`). The `flwr` CLI now targets SuperLink's Exec API. Additionally, SuperLink introduces two isolation modes for running ServerApps: `subprocess` (default) and `process`, which can be specified using the `--isolation {subprocess,process}` flag.\r\n\r\n- **Introduce `flwr-serverapp` command** ([#4394](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4394), [#4370](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4370), [#4367](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4367), [#4350](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4350), [#4364](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4364), [#4400](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4400), [#4363](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4363), [#4401](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4401), [#4388](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4388), [#4402](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4402))\r\n\r\n  The `flwr-serverapp` command has been introduced as a CLI entry point that runs a `ServerApp` process. This process communicates with SuperLink to load and execute the `ServerApp` object, enabling isolated execution and more flexible deployment.\r\n\r\n- **Improve simulation engine and introduce `flwr-simulation` command** ([#4433](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4433), [#4486](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4486), [#4448](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4448), [#4427](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4427), [#4438](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4438), [#4421](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4421), [#4430](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4430), [#4462](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4462))\r\n\r\n  The simulation engine has been significantly improved, resulting in dramatically faster simulations. Additionally, the `flwr-simulation` command has been introduced to enhance maintainability and provide a dedicated entry point for running simulations.\r\n\r\n- **Improve SuperLink message management** ([#4378](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4378), [#4369](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4369))\r\n\r\n  SuperLink now validates the destination node ID of instruction messages and checks the TTL (time-to-live) for reply messages. When pulling reply messages, an error reply will be generated and returned if the corresponding instruction message does not exist, has expired, or if the reply message exists but has expired.\r\n\r\n- **Introduce FedDebug baseline** ([#3783](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F3783))\r\n\r\n  FedDebug is a framework that enhances debugging in Federated Learning by enabling interactive inspection of the training process and automatically identifying clients responsible for degrading the global model's performance—all without requiring testing data or labels. Learn more in the [FedDebug baseline documentation](https:\u002F\u002Fflower.ai\u002Fdocs\u002Fbaselines\u002Ffeddebug.html).\r\n\r\n- **Update documentation** ([#4511](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4511), [#4010](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4010), [#4396](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4396), [#4499](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4499), [#4269](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4269), [#3340](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F3340), [#4482](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4482), [#4387](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4387), [#4342](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F4342), [#4492](https:\u002F\u002Fgithub.com\u002Fadap\u002Fflower\u002Fpull\u002F44","2024-11-20T15:16:43"]