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

Open in GitHub Codespaces

🐍 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 dependencies
  • uv sync --extra torch - Install with PyTorch support
  • uv sync --extra tensorflow - Install with TensorFlow support
  • uv sync --extra ray - Install with Ray support

Use --no-dev to exclude development dependencies.

⚠️ Important for Ray users: If you're using Ray, we recommend activating the virtual environment traditionally instead of using uv run to 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

🤝 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.4.4.tar.gz (5.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

p2pfl-0.4.4-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

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

Hashes for p2pfl-0.4.4.tar.gz
Algorithm Hash digest
SHA256 b8831c74e5c1f37af13ee9266c9af63b8b42b7ff56a2f217327ffa1187e56806
MD5 8a6343a7e637260cc1db6538c1822379
BLAKE2b-256 0895d68d270e85c35109528f10573270e5cd7523e834fbbaa9a808827f18f949

See more details on using hashes here.

Provenance

The following attestation bundles were made for p2pfl-0.4.4.tar.gz:

Publisher: publish.yml on p2pfl/p2pfl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for p2pfl-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 028396faaf418ced7e61d2026a0646baa9855787d05e2bd16719e1d0d82a9d73
MD5 cef7d04c51732de7b4b3febd4a76a711
BLAKE2b-256 462eb7df2b7c970216eeb20c1cfd5e7df7407502ec3bf8005a12aa86f13a171c

See more details on using hashes here.

Provenance

The following attestation bundles were made for p2pfl-0.4.4-py3-none-any.whl:

Publisher: publish.yml on p2pfl/p2pfl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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