Skip to content

Home & Browser nodes, WebAssembly Wallets, Plugin system

License

Notifications You must be signed in to change notification settings

PeerPiper/peerpiper

Repository files navigation

PeerPiper Workspace Monorepo

🚧 Alpha level software. The docs are a bit rough, but will give you an outline of the vision. Raise an issue if you run into troubles.

The core Rust libraries and front-end examples for the PeerPiper project. Mainly holds the peer-to-peer networking logic, the core data structures, and how to use them.

The idea is to put all the reusable code in this repo so it can be linked and tested in its entirety.

Goals

PeerPiper is an contacts network based on the PeerWise Protocol that allows you to share data with others in a peer-to-peer fashion. It's a bit like a social network, but you own your data and can share it with others in a more granular way.

PeerPiper Architecture

PeerPiper "Nodes"

The browser needs a node to connect to the network. The good news is that you can run your own node on your own desktop, or trustlessly use someone else's.

This is true even if you use PeerPiper between two browsers, because the server in between connects the browsers together at first.

Deployment

The core library should include wrappers so that it can be deployed to various infrastructure providers:

Development dependencies

You'll need a few dependencies to get started:

🦀 Rust

  • Rust 1.80+ (uses nightly stipulated in the [rust-toolchain.toml](./rust-toolchain.toml
  • Add wasm32-wasip1 target: rustup target add wasm32-wasip1
  • Add wasm32-unknown-unknown target: rustup target add wasm32-unknown-unknown

Using binstall: cargo binstall cargo-component@0.13.2

Note that cargo-component is a work in progress and may not be stable. Configs, settings, and commands may change from version to version.

⚖️ Just

  • Just makes running batch commands easier. There's a justfile in the root of the project.

Development

Many of the commands used in development are in the justfile. You can see them by running just.