2025-01-19 22:56:17 +00:00
2022-09-18 22:39:41 +04:00
2024-03-12 14:41:29 +04:00
2025-01-07 20:19:47 +00:00
2025-01-07 20:19:47 +00:00
2025-01-19 01:04:26 +00:00
2025-01-07 20:19:47 +00:00
2025-01-07 01:24:14 +00:00
2022-09-18 22:32:40 +04:00
2023-07-15 00:07:14 +01:00
2025-01-14 21:00:25 +00:00
2021-07-08 22:25:09 +04:00
2025-01-07 21:35:17 +00:00
2025-01-05 13:41:59 +00:00
2025-01-07 21:18:08 +00:00
2023-07-14 17:54:56 +01:00
2023-07-14 17:54:56 +01:00
2021-08-25 13:27:31 +04:00
2021-05-03 15:34:47 +04:00
2025-01-19 22:56:17 +00:00
2021-12-22 13:17:04 +04:00

Tip

Haskell bindings supported!: Bindings documentaton

Note

Fixing documentation to latest changes. If you have any questions setting up P2PRC either create an issue or send me an email (me AT akilan dot io). Currently HEAD is always intended to stay on a working state. It is recommended to always use HEAD in your go.mod file.


p2prc

GPLv2 license Maintenance made-with-Go GoDoc reference example

This project aims to simplify self-hosting servers and streamline the creation of distributed systems. The primary focus is to enable users to design custom peer-to-peer networks for distributed computing, offering full flexibility and control while abstracting away the complexities of networking.

Key Features

Simplified Self-Hosting Empower users to easily host nodes, whether on personal computers behind NAT, custom hardware, or cloud-based infrastructure.

Custom Peer-to-Peer Networks

Build a decentralised network tailored to user requirements, enabling distributed task execution without the need for in-depth networking knowledge.

Heterogeneous Node Support

Harness a diverse array of nodes—from personal computers to specialised hardware—seamlessly integrated into a global node list.

Abstracted Networking Layer

Networking details are completely abstracted, enabling users to focus on developing bespoke task orchestration systems. No more manual configuration of IPs, ports, or connection logic.

Flexible Task Distribution

Users acting as clients retain full control over how tasks are batched and assigned to nodes, creating endless possibilities for optimising performance based on specific use cases.

Latest tutorial

IMAGE ALT TEXT




Introduction

This project aims to create a peer to peer (p2p) network, where a user can use the p2p network to act as a client (i.e sending tasks) or the server (i.e executing the tasks). A prototype application will be developed, which comes bundled with a p2p module and possible to execute docker containers or virtual environments across selected nodes.

Objectives

  • Background review on peer to peer network, virtual environments, decentralized rendering tools and tools to batch any sort of tasks.
  • Creating p2p network
  • Server to create a containerised environment
  • The client node to run tasks on Server containerised node

Read more on the introduction


Extend your application with P2PRC

package main

import (
	"fmt"
	"github.com/Akilan1999/p2p-rendering-computation/abstractions"
)

func main() {
	_, err := abstractions.Init(nil)
	if err != nil {
		fmt.Println(err)
		return
	}

	// start p2prc
	_, err = abstractions.Start()
	if err != nil {
		fmt.Println(err)
		return
	}

	// Run server till termination
	for {

	}
}

Find out more

As we are working on the open source project p2prc (i.e p2p network designed for computation).If you are interested in participating as a contributor or just providing feedback on new features to build or even just curious about new features added to the project. We have decided to create a discord group. Support Server

Star History Chart

Description
p2p network to enable running distributed computation and rendering.
Readme GPL-2.0 Cite this repository 128 MiB
Languages
Go 78.1%
Haskell 9.6%
HTML 4.8%
Shell 2.8%
Nix 2.7%
Other 1.9%