p2pfl


Namep2pfl JSON
Version 0.4.0 PyPI version JSON
download
home_pagehttps://pguijas.github.io/p2pfl/
SummaryA p2p federated learning framework
upload_time2024-12-20 12:13:04
maintainerNone
docs_urlNone
authorPedro Guijas
requires_python<4.0,>=3.10
licenseGPL-3.0-only
keywords federated learning fl peer to peer p2p decentralized data privacy data security pytorch
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![GitHub Logo](https://raw.githubusercontent.com/p2pfl/p2pfl/main/other/logo.png)

# P2PFL - Federated Learning over P2P networks

[![GitHub license](https://img.shields.io/github/license/p2pfl/p2pfl)](https://github.com/p2pfl/p2pfl/blob/main/LICENSE.md)
[![GitHub issues](https://img.shields.io/github/issues/p2pfl/p2pfl)](https://github.com/p2pfl/p2pfl/issues)
![GitHub contributors](https://img.shields.io/github/contributors/p2pfl/p2pfl)
![GitHub forks](https://img.shields.io/github/forks/p2pfl/p2pfl)
![GitHub stars](https://img.shields.io/github/stars/p2pfl/p2pfl)
![GitHub activity](https://img.shields.io/github/commit-activity/m/p2pfl/p2pfl)
[![Coverage badge](https://img.shields.io/badge/dynamic/json?color=brightgreen&label=coverage&query=%24.message&url=https%3A%2F%2Fraw.githubusercontent.com%2Fp2pfl%2Fp2pfl%2Fpython-coverage-comment-action-data%2Fendpoint.json)](https://htmlpreview.github.io/?https://github.com/p2pfl/p2pfl/blob/python-coverage-comment-action-data/htmlcov/index.html)
[![Slack](https://img.shields.io/badge/Chat-Slack-red)](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

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](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.

[![Star History Chart](https://api.star-history.com/svg?repos=p2pfl/p2pfl&type=Date)](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": "![GitHub Logo](https://raw.githubusercontent.com/p2pfl/p2pfl/main/other/logo.png)\n\n# P2PFL - Federated Learning over P2P networks\n\n[![GitHub license](https://img.shields.io/github/license/p2pfl/p2pfl)](https://github.com/p2pfl/p2pfl/blob/main/LICENSE.md)\n[![GitHub issues](https://img.shields.io/github/issues/p2pfl/p2pfl)](https://github.com/p2pfl/p2pfl/issues)\n![GitHub contributors](https://img.shields.io/github/contributors/p2pfl/p2pfl)\n![GitHub forks](https://img.shields.io/github/forks/p2pfl/p2pfl)\n![GitHub stars](https://img.shields.io/github/stars/p2pfl/p2pfl)\n![GitHub activity](https://img.shields.io/github/commit-activity/m/p2pfl/p2pfl)\n[![Coverage badge](https://img.shields.io/badge/dynamic/json?color=brightgreen&label=coverage&query=%24.message&url=https%3A%2F%2Fraw.githubusercontent.com%2Fp2pfl%2Fp2pfl%2Fpython-coverage-comment-action-data%2Fendpoint.json)](https://htmlpreview.github.io/?https://github.com/p2pfl/p2pfl/blob/python-coverage-comment-action-data/htmlcov/index.html)\n[![Slack](https://img.shields.io/badge/Chat-Slack-red)](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[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](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[![Star History Chart](https://api.star-history.com/svg?repos=p2pfl/p2pfl&type=Date)](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"
}
        
Elapsed time: 0.39381s