Metadata-Version: 2.1
Name: flwr
Version: 0.14.0
Summary: Flower - A Friendly Federated Learning Framework
Home-page: https://flower.dev
License: Apache-2.0
Author: The Flower Authors
Author-email: enquiries@flower.dev
Requires-Python: >=3.6.1,<4.0.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Provides-Extra: baseline
Provides-Extra: examples-pytorch
Provides-Extra: examples-tensorflow
Provides-Extra: http-logger
Provides-Extra: ops
Requires-Dist: boto3 (>=1.12.36,<2.0.0); extra == "baseline" or extra == "http-logger" or extra == "http-logger" or extra == "ops"
Requires-Dist: boto3_type_annotations (>=0.3.1,<0.4.0); extra == "baseline" or extra == "http-logger" or extra == "http-logger" or extra == "ops"
Requires-Dist: dataclasses (==0.6); python_version < "3.7"
Requires-Dist: docker (>=4.2.0,<5.0.0); extra == "baseline" or extra == "http-logger" or extra == "ops"
Requires-Dist: google (>=2.0.3,<3.0.0)
Requires-Dist: grpcio (>=1.27.2,<2.0.0)
Requires-Dist: matplotlib (>=3.2.1,<4.0.0); extra == "baseline" or extra == "http-logger"
Requires-Dist: numpy (>=1.19.0,<2.0.0)
Requires-Dist: paramiko (>=2.7.1,<3.0.0); extra == "baseline" or extra == "http-logger" or extra == "ops"
Requires-Dist: protobuf (>=3.12.1,<4.0.0)
Requires-Dist: tensorflow-cpu (==2.4.0); extra == "baseline" or extra == "examples-tensorflow" or extra == "http-logger"
Requires-Dist: torch (>=1.7.0,<2.0.0); extra == "examples-pytorch"
Requires-Dist: torchvision (>=0.8.1,<0.9.0); extra == "examples-pytorch"
Requires-Dist: tqdm (>=4.48.2,<5.0.0); extra == "examples-pytorch"
Project-URL: Documentation, https://flower.dev
Project-URL: Repository, https://github.com/adap/flower
Description-Content-Type: text/markdown

# Flower - A Friendly Federated Learning Framework

[![GitHub license](https://img.shields.io/github/license/adap/flower)](https://github.com/adap/flower/blob/main/LICENSE)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/adap/flower/blob/main/CONTRIBUTING.md)
![Build](https://github.com/adap/flower/workflows/Build/badge.svg)
![Downloads](https://pepy.tech/badge/flwr)

Flower (`flwr`) is a framework for building federated learning systems. The
design of Flower is based on a few guiding principles:

* **Customizable**: Federated learning systems vary wildly from one use case to
  another. Flower allows for a wide range of different configurations depending
  on the needs of each individual use case.

* **Extendable**: Flower originated from a research project at the Univerity of
  Oxford, so it was build with AI research in mind. Many components can be
  extended and overridden to build new state-of-the-art systems.

* **Framework-agnostic**: Different machine learning frameworks have different
  strengths. Flower can be used with any machine learning framework, for
  example, [PyTorch](https://pytorch.org),
  [TensorFlow](https://tensorflow.org), or even raw [NumPy](https://numpy.org/)
  for users who enjoy computing gradients by hand.

* **Understandable**: Flower is written with maintainability in mind. The
  community is encouraged to both read and contribute to the codebase.

## Documentation

[Flower Documentation](https://flower.dev):

* [Installation](https://flower.dev/docs/installation.html)
* [Quickstart (TensorFlow)](https://flower.dev/docs/quickstart_tensorflow.html)
* [Quickstart (PyTorch)](https://flower.dev/docs/quickstart_pytorch.html)

## Flower Usage Examples

A number of examples show different usage scenarios of Flower (in combination
with popular machine learning frameworks such as PyTorch or TensorFlow). To run
an example, first install the necessary extras:

[Usage Examples Documentation](https://flower.dev/docs/examples.html)

Quickstart examples:

* [Quickstart (TensorFlow)](https://github.com/adap/flower/tree/main/examples/quickstart_tensorflow)
* [Quickstart (PyTorch)](https://github.com/adap/flower/tree/main/examples/quickstart_pytorch)

Other [examples](https://github.com/adap/flower/tree/main/examples):

* [Raspberry Pi & Nvidia Jetson Tutorial](https://github.com/adap/flower/tree/main/examples/embedded_devices)

## Flower Baselines

*Coming soon* - curious minds can take a peek at [src/py/flwr_experimental/baseline](https://github.com/adap/flower/tree/main/src/py/flwr_experimental/baseline).

## Flower Datasets

*Coming soon* - curious minds can take a peek at [src/py/flwr_experimental/baseline/dataset](https://github.com/adap/flower/tree/main/src/py/flwr_experimental/baseline/dataset).

## Citation

If you publish work that uses Flower, please cite Flower as follows: 

```bibtex
@article{beutel2020flower,
  title={Flower: A Friendly Federated Learning Research Framework},
  author={Beutel, Daniel J and Topal, Taner and Mathur, Akhil and Qiu, Xinchi and Parcollet, Titouan and Lane, Nicholas D},
  journal={arXiv preprint arXiv:2007.14390},
  year={2020}
}
```

Please also consider adding your publication to the list of Flower-based publications in the docs, just open a Pull Request.

## Contributing to Flower

We welcome contributions. Please see [CONTRIBUTING.md](CONTRIBUTING.md) to get
started!

