
# P2PFL - Federated Learning over P2P networks
[](https://github.com/p2pfl/p2pfl/blob/main/LICENSE.md)
[](https://github.com/p2pfl/p2pfl/issues)




[](https://htmlpreview.github.io/?https://github.com/p2pfl/p2pfl/blob/python-coverage-comment-action-data/htmlcov/index.html)
[](https://join.slack.com/t/p2pfl/shared_invite/zt-2lbqvfeqt-FkutD1LCZ86yK5tP3Duztw)
P2PFL is a general-purpose open-source library designed for the execution (simulated and in real environments) of Decentralized Federated Learning systems, specifically making use of P2P networks and the gossip protocols.
## โจ Key Features
P2PFL offers a range of features designed to make decentralized federated learning accessible and efficient. For detailed information, please refer to our [documentation](https://p2pfl.github.io/p2pfl/).
| Feature | Description |
|-------------------|--------------------------------------------------|
| ๐ Easy to Use | [Get started](https://p2pfl.github.io/p2pfl/quickstart.html) quickly with our intuitive API. |
| ๐ก๏ธ Reliable | Built for fault tolerance and resilience. |
| ๐ Scalable | Leverages the power of peer-to-peer networks. |
| ๐งช Versatile | Experiment in simulated or real-world environments.|
| ๐ Private | Prioritizes data privacy with decentralized architecture.|
| ๐งฉ Flexible | Designed to be easy to modify.|
| ๐ Real-time Monitoring | Manage and track experiment through [P2PFL Web Services platform](https://p2pfl.com). |
| ๐ง ML Frameworks | Seamlessly integrate [PyTorch](https://pytorch.org/), [TensorFlow/Keras](https://www.tensorflow.org/), and [JAX](https://github.com/google/jax) models. |
| ๐ก Communication Protocol Agnostic | Choose the communication protocol that best suits your needs (e.g., [gRPC](https://grpc.io/)). |
| ๐ Integrations | Enhanced capabilities through integrations: [Hugging Face Datasets](https://huggingface.co/datasets), ML frameworks, communication protocols, and [Ray](https://www.ray.io/) for large-scale simulations. |
## ๐ฅ Installation
### ๐จ๐ผโ๐ป For Users
```bash
pip install "p2pfl[torch]"
```
### ๐จ๐ผโ๐ง For Developers
[](https://codespaces.new/p2pfl/p2pfl/tree/develop?quickstart=1)
#### ๐ Python (using Poetry)
```bash
git clone https://github.com/p2pfl/p2pfl.git
cd p2pfl
poetry install -E torch
```
> **Note:** Use the extras (`-E`) flag to install specific dependencies (e.g., `-E torch`). Use `--no-dev` to exclude development dependencies.
#### ๐ณ Docker
```bash
docker build -t p2pfl .
docker run -it --rm p2pfl bash
```
## ๐ฌ Quickstart
To start using P2PFL, follow our [quickstart guide](https://p2pfl.github.io/p2pfl/quickstart.html) in the documentation.
## ๐ Documentation & Resources
* **Documentation:** [https://p2pfl.github.io/p2pfl/](https://p2pfl.github.io/p2pfl)
* **Technical Report:** (first version) [other/memoria.pdf](other/memoria.pdf)
## ๐ค Contributing
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. Please adhere to the project's code of conduct in [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
## ๐ฌ Community
Connect with us and stay updated:
* [**GitHub Issues:**](https://github.com/p2pfl/p2pfl/issues) - For reporting bugs and requesting features.
* [**Google Group:**](https://groups.google.com/g/p2pfl) - For discussions and announcements.
* [**Slack:**](https://join.slack.com/t/p2pfl/shared_invite/zt-2lbqvfeqt-FkutD1LCZ86yK5tP3Duztw) - For real-time conversations and support.
## โญ Star History
A big thank you to the community for your interest in P2PFL! We appreciate your support and contributions.
[](https://star-history.com/#p2pfl/p2pfl&Date)
## ๐ License
[GNU General Public License, Version 3.0](https://www.gnu.org/licenses/gpl-3.0.en.html)
Raw data
{
"_id": null,
"home_page": "https://pguijas.github.io/p2pfl/",
"name": "p2pfl",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "federated learning, fl, peer to peer, p2p, decentralized, data privacy, data security, pytorch",
"author": "Pedro Guijas",
"author_email": "pguijas@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/38/8b/2c2d3944920d3434d525aff55a2cb7e561c72b59e0dedf80394ef4d543a4/p2pfl-0.4.0.tar.gz",
"platform": null,
"description": "\n\n# P2PFL - Federated Learning over P2P networks\n\n[](https://github.com/p2pfl/p2pfl/blob/main/LICENSE.md)\n[](https://github.com/p2pfl/p2pfl/issues)\n\n\n\n\n[](https://htmlpreview.github.io/?https://github.com/p2pfl/p2pfl/blob/python-coverage-comment-action-data/htmlcov/index.html)\n[](https://join.slack.com/t/p2pfl/shared_invite/zt-2lbqvfeqt-FkutD1LCZ86yK5tP3Duztw)\n\nP2PFL is a general-purpose open-source library designed for the execution (simulated and in real environments) of Decentralized Federated Learning systems, specifically making use of P2P networks and the gossip protocols.\n\n## \u2728 Key Features\n\nP2PFL offers a range of features designed to make decentralized federated learning accessible and efficient. For detailed information, please refer to our [documentation](https://p2pfl.github.io/p2pfl/).\n\n| Feature | Description |\n|-------------------|--------------------------------------------------|\n| \ud83d\ude80 Easy to Use | [Get started](https://p2pfl.github.io/p2pfl/quickstart.html) quickly with our intuitive API. |\n| \ud83d\udee1\ufe0f Reliable | Built for fault tolerance and resilience. |\n| \ud83c\udf10 Scalable | Leverages the power of peer-to-peer networks. |\n| \ud83e\uddea Versatile | Experiment in simulated or real-world environments.|\n| \ud83d\udd12 Private | Prioritizes data privacy with decentralized architecture.|\n| \ud83e\udde9 Flexible | Designed to be easy to modify.|\n| \ud83d\udcc8 Real-time Monitoring | Manage and track experiment through [P2PFL Web Services platform](https://p2pfl.com). |\n| \ud83e\udde0 ML Frameworks | Seamlessly integrate [PyTorch](https://pytorch.org/), [TensorFlow/Keras](https://www.tensorflow.org/), and [JAX](https://github.com/google/jax) models. |\n| \ud83d\udce1 Communication Protocol Agnostic | Choose the communication protocol that best suits your needs (e.g., [gRPC](https://grpc.io/)). |\n| \ud83d\udd0c Integrations | Enhanced capabilities through integrations: [Hugging Face Datasets](https://huggingface.co/datasets), ML frameworks, communication protocols, and [Ray](https://www.ray.io/) for large-scale simulations. |\n\n## \ud83d\udce5 Installation\n\n### \ud83d\udc68\ud83c\udffc\u200d\ud83d\udcbb For Users\n\n```bash\npip install \"p2pfl[torch]\"\n```\n\n### \ud83d\udc68\ud83c\udffc\u200d\ud83d\udd27 For Developers\n\n[](https://codespaces.new/p2pfl/p2pfl/tree/develop?quickstart=1)\n\n#### \ud83d\udc0d Python (using Poetry)\n\n```bash\ngit clone https://github.com/p2pfl/p2pfl.git\ncd p2pfl\npoetry install -E torch \n```\n\n> **Note:** Use the extras (`-E`) flag to install specific dependencies (e.g., `-E torch`). Use `--no-dev` to exclude development dependencies.\n\n#### \ud83d\udc33 Docker\n\n```bash\ndocker build -t p2pfl .\ndocker run -it --rm p2pfl bash\n```\n\n## \ud83c\udfac Quickstart\n\nTo start using P2PFL, follow our [quickstart guide](https://p2pfl.github.io/p2pfl/quickstart.html) in the documentation.\n\n## \ud83d\udcda Documentation & Resources\n\n* **Documentation:** [https://p2pfl.github.io/p2pfl/](https://p2pfl.github.io/p2pfl)\n* **Technical Report:** (first version) [other/memoria.pdf](other/memoria.pdf)\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. Please adhere to the project's code of conduct in [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).\n\n## \ud83d\udcac Community\n\nConnect with us and stay updated:\n\n* [**GitHub Issues:**](https://github.com/p2pfl/p2pfl/issues) - For reporting bugs and requesting features.\n* [**Google Group:**](https://groups.google.com/g/p2pfl) - For discussions and announcements.\n* [**Slack:**](https://join.slack.com/t/p2pfl/shared_invite/zt-2lbqvfeqt-FkutD1LCZ86yK5tP3Duztw) - For real-time conversations and support.\n\n## \u2b50 Star History\n\nA big thank you to the community for your interest in P2PFL! We appreciate your support and contributions.\n\n[](https://star-history.com/#p2pfl/p2pfl&Date)\n\n## \ud83d\udcdc License\n\n[GNU General Public License, Version 3.0](https://www.gnu.org/licenses/gpl-3.0.en.html)\n\n",
"bugtrack_url": null,
"license": "GPL-3.0-only",
"summary": "A p2p federated learning framework",
"version": "0.4.0",
"project_urls": {
"Documentation": "https://pguijas.github.io/p2pfl",
"Homepage": "https://pguijas.github.io/p2pfl/",
"Repository": "https://github.com/pguijas/p2pfl"
},
"split_keywords": [
"federated learning",
" fl",
" peer to peer",
" p2p",
" decentralized",
" data privacy",
" data security",
" pytorch"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f6a84d23713cabb28b7a67195c367ad1f7404f226ff205e32bd931304a45d717",
"md5": "cdf38b502093ad4ea794214a420a4d9b",
"sha256": "88bc931a95037f2c1fabb88ef31ea4b21d3feb496acdab61cf0a202c304a41aa"
},
"downloads": -1,
"filename": "p2pfl-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cdf38b502093ad4ea794214a420a4d9b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 189997,
"upload_time": "2024-12-20T12:13:02",
"upload_time_iso_8601": "2024-12-20T12:13:02.417061Z",
"url": "https://files.pythonhosted.org/packages/f6/a8/4d23713cabb28b7a67195c367ad1f7404f226ff205e32bd931304a45d717/p2pfl-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "388b2c2d3944920d3434d525aff55a2cb7e561c72b59e0dedf80394ef4d543a4",
"md5": "83bbdd70e300268b52e88336ead57d66",
"sha256": "8d0873ca97b405cdefcc20f70b4bd7b9bee68185453911ce3681df41f145bc7d"
},
"downloads": -1,
"filename": "p2pfl-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "83bbdd70e300268b52e88336ead57d66",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 100441,
"upload_time": "2024-12-20T12:13:04",
"upload_time_iso_8601": "2024-12-20T12:13:04.447038Z",
"url": "https://files.pythonhosted.org/packages/38/8b/2c2d3944920d3434d525aff55a2cb7e561c72b59e0dedf80394ef4d543a4/p2pfl-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-20 12:13:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pguijas",
"github_project": "p2pfl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "p2pfl"
}