{"id":15129878,"url":"https://github.com/02loveslollipop/primitivepeer2peerprotocol","last_synced_at":"2026-02-17T05:02:47.653Z","repository":{"id":257288742,"uuid":"853350672","full_name":"02loveslollipop/PrimitivePeer2PeerProtocol","owner":"02loveslollipop","description":"A simple centralized P2P protocol for file exchange","archived":false,"fork":false,"pushed_at":"2024-09-22T16:57:31.000Z","size":118,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T06:12:25.786Z","etag":null,"topics":["docker-compose","grpc","p2p","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/02loveslollipop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-06T13:36:11.000Z","updated_at":"2025-01-25T17:11:52.000Z","dependencies_parsed_at":"2024-09-15T19:25:54.762Z","dependency_job_id":"d0e2732f-2ad7-4bd8-ab82-c7047310058f","html_url":"https://github.com/02loveslollipop/PrimitivePeer2PeerProtocol","commit_stats":null,"previous_names":["02loveslollipop/primitivepeer2peerprotocol"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/02loveslollipop/PrimitivePeer2PeerProtocol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/02loveslollipop%2FPrimitivePeer2PeerProtocol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/02loveslollipop%2FPrimitivePeer2PeerProtocol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/02loveslollipop%2FPrimitivePeer2PeerProtocol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/02loveslollipop%2FPrimitivePeer2PeerProtocol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/02loveslollipop","download_url":"https://codeload.github.com/02loveslollipop/PrimitivePeer2PeerProtocol/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/02loveslollipop%2FPrimitivePeer2PeerProtocol/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000733,"owners_count":26082862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","grpc","p2p","python"],"created_at":"2024-09-26T02:22:10.415Z","updated_at":"2025-10-08T23:26:08.406Z","avatar_url":"https://github.com/02loveslollipop.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Primitive Peer 2 Peer Protocol (P4)\n\u003e A simple peer to peer protocol for file sharing.\n\n## Intro\nP4 is a simple peer to peer protocol for file sharing. It is designed to be simple and easy to implement. It is a http and gRPC based protocol, with a simple REST API for control and a gRPC for data transfer.\n\n## Requirements\n1. Python 3.11+\n2. mutiple peers (it can be addressed by using Docker or modifying each peer working port)\n3. If using with multiple computers, by default, the 8000 is used as the control port and 8001 is used as the data port, so theses ports should be open in the firewall.\n\n## Quick Start\nFull setup and user guide can be found in the [User manual](https://github.com/02loveslollipop/PrimitivePeer2PeerProtocol/wiki/User-manual)\n\n1. Clone the repository\n```bash\ngit clone https://github.com/02loveslollipop/PrimitivePeer2PeerProtocol.git\ncd PrimitivePeer2PeerProtocol\n```\n\n2. (Optional) Create a conda environment\n```bash\nconda create -n p4 python=3.11\nconda activate p4\n```\n\n3. Install the requirements\n```bash\npip install -r requirements.txt\n```\n\n4. Start the server\n```bash\npython ./Server/server.py\n```\n\n5. Start peer server\n```bash\npython ./Peer/peer.py --server\n```\n\n6. Start peer client\n```bash\npython ./Peer/peer.py\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F02loveslollipop%2Fprimitivepeer2peerprotocol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F02loveslollipop%2Fprimitivepeer2peerprotocol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F02loveslollipop%2Fprimitivepeer2peerprotocol/lists"}