A p2p federated learning framework
Project description
P2PFL - Federated Learning over P2P networks
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.
| Feature | Description |
|---|---|
| 🚀 Easy to Use | Get started 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. |
| 🧠 ML Frameworks | Seamlessly integrate PyTorch, TensorFlow/Keras, and JAX models. |
| 📡 Communication Protocol Agnostic | Choose the communication protocol that best suits your needs (e.g., gRPC). |
| 🔌 Integrations | Enhanced capabilities through integrations: Hugging Face Datasets, ML frameworks, communication protocols, and Ray for large-scale simulations. |
📥 Installation
👨🏼💻 For Users
pip install "p2pfl[torch]"
👨🏼🔧 For Developers
🐍 Python (using UV)
git clone https://github.com/p2pfl/p2pfl.git
cd p2pfl
uv sync --all-extras
Note: The above command installs all dependencies (PyTorch, TensorFlow, and Ray). If you only need specific frameworks, you can use:
uv sync- Install only core dependenciesuv sync --extra torch- Install with PyTorch supportuv sync --extra tensorflow- Install with TensorFlow supportuv sync --extra ray- Install with Ray supportUse
--no-devto exclude development dependencies.
⚠️ Important for Ray users: If you're using Ray, we recommend activating the virtual environment traditionally instead of using
uv runto avoid dependency issues with Ray workers. See the installation guide for details.
🐳 Docker
docker build -t p2pfl .
docker run -it --rm p2pfl bash
🎬 Quickstart
To start using P2PFL, follow our quickstart guide in the documentation.
📚 Documentation & Resources
- Documentation: https://p2pfl.github.io/p2pfl/
- Technical Report: (first version) other/memoria.pdf
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines. Please adhere to the project's code of conduct in CODE_OF_CONDUCT.md.
💬 Community
Connect with us and stay updated:
- GitHub Issues: - For reporting bugs and requesting features.
- Google Group: - For discussions and announcements.
- Slack: - 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.
📜 License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file p2pfl-0.4.4.tar.gz.
File metadata
- Download URL: p2pfl-0.4.4.tar.gz
- Upload date:
- Size: 5.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8831c74e5c1f37af13ee9266c9af63b8b42b7ff56a2f217327ffa1187e56806
|
|
| MD5 |
8a6343a7e637260cc1db6538c1822379
|
|
| BLAKE2b-256 |
0895d68d270e85c35109528f10573270e5cd7523e834fbbaa9a808827f18f949
|
Provenance
The following attestation bundles were made for p2pfl-0.4.4.tar.gz:
Publisher:
publish.yml on p2pfl/p2pfl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
p2pfl-0.4.4.tar.gz -
Subject digest:
b8831c74e5c1f37af13ee9266c9af63b8b42b7ff56a2f217327ffa1187e56806 - Sigstore transparency entry: 573265849
- Sigstore integration time:
-
Permalink:
p2pfl/p2pfl@e22106f09a38617dabe95d909e3d8773534537cf -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/p2pfl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e22106f09a38617dabe95d909e3d8773534537cf -
Trigger Event:
push
-
Statement type:
File details
Details for the file p2pfl-0.4.4-py3-none-any.whl.
File metadata
- Download URL: p2pfl-0.4.4-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
028396faaf418ced7e61d2026a0646baa9855787d05e2bd16719e1d0d82a9d73
|
|
| MD5 |
cef7d04c51732de7b4b3febd4a76a711
|
|
| BLAKE2b-256 |
462eb7df2b7c970216eeb20c1cfd5e7df7407502ec3bf8005a12aa86f13a171c
|
Provenance
The following attestation bundles were made for p2pfl-0.4.4-py3-none-any.whl:
Publisher:
publish.yml on p2pfl/p2pfl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
p2pfl-0.4.4-py3-none-any.whl -
Subject digest:
028396faaf418ced7e61d2026a0646baa9855787d05e2bd16719e1d0d82a9d73 - Sigstore transparency entry: 573265855
- Sigstore integration time:
-
Permalink:
p2pfl/p2pfl@e22106f09a38617dabe95d909e3d8773534537cf -
Branch / Tag:
refs/tags/v0.4.4 - Owner: https://github.com/p2pfl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e22106f09a38617dabe95d909e3d8773534537cf -
Trigger Event:
push
-
Statement type: