Skip to main content

A p2p federated learning framework

Project description

GitHub Logo

P2PFL - Federated Learning over P2P networks

GitHub license GitHub issues GitHub contributors GitHub forks GitHub stars GitHub activity Coverage badge Slack

P2PFL is a general-purpose open-source library for the execution (simulated and in real environments) of Decentralized Federated Learning systems, specifically making use of P2P networks and the Gossip protocol.

✨ 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 Integrate with PyTorch and TensorFlow (coming soon!).
📈 Real-time Monitoring Manage and track experiment through P2PFL Web Services.
🧠 Model Agnostic Use any machine learning model you prefer (e.g., PyTorch models).
📡 Communication Protocol Agnostic Choose the communication protocol that best suits your needs (e.g., gRPC).

📥 Installation

Note: We recommend using Python 3.9 or lower. We have found some compatibility issues with Python 3.10 and PyTorch.

👨🏼‍💻 For Users

pip install p2pfl

👨🏼‍🔧 For Developers

🐍 Python (using Poetry)

git clone https://github.com/pguijas/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

docker build -t p2pfl .
docker run -it --rm p2pfl bash

🎬 Quickstart

To start using P2PFL, follow our quickstart guide in the documentation.

📚 Documentation & Resources

🤝 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:

⭐ Star History

A big thank you to the community for your interest in P2PFL! We appreciate your support and contributions.

Star History Chart

📜 License

GNU General Public License, Version 3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

p2pfl-0.3.0.tar.gz (66.3 kB view details)

Uploaded Source

Built Distribution

p2pfl-0.3.0-py3-none-any.whl (120.7 kB view details)

Uploaded Python 3

File details

Details for the file p2pfl-0.3.0.tar.gz.

File metadata

  • Download URL: p2pfl-0.3.0.tar.gz
  • Upload date:
  • Size: 66.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for p2pfl-0.3.0.tar.gz
Algorithm Hash digest
SHA256 99971e211ae6ea055fe85cd0adac2a7106f973bb856e95495703f5bcca976865
MD5 fa161dc00fa741eb9f04966841c6f3fe
BLAKE2b-256 dbf484cfffed73606da542bfa4568ab181119f5244d22d7a1a05ff1cb367b346

See more details on using hashes here.

File details

Details for the file p2pfl-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: p2pfl-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 120.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for p2pfl-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c0a8a830acf6b6a4a921f9f345ad3a8f054e30654dcf2af208e5741ea2a4318
MD5 4e712bcb5e8f47a8a7a4847a58813460
BLAKE2b-256 a6589c9c7cd9c2ef1d05aab8c9e1bee00692a038ba63d34391a007b1a5fdabb9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page