Location via proxy:   
[Report a bug]   [Manage cookies]                

p2panda

Building blocks for peer-to-peer applications

About

p2panda aims to provide everything you need to build modern, privacy-respecting and secure local-first applications.

We have adopted a modular approach—allowing projects the freedom to pick what they need and integrate it with minimal friction. We believe this approach contributes the most to a wider, interoperable p2p ecosystem which outlives “framework lock-in”.

Many of our Rust crates operate over raw bytes and are fully compatible with your own data types and any CRDT. In case you don't plan on building your own peer-to-peer protocol, we have you covered with all features required to build a mobile or desktop application.

We're using existing libraries like iroh and well-established standards such as BLAKE3, Ed25519, STUN, CBOR, TLS, QUIC, UCAN, Double Ratchet and more - as long as they give us the radical offline-first guarantee we need.

We want collaboration, encryption and access-control to work even when operating over unstable or ephemeral connections. Towards this end, we're actively working alongside researchers to design and implement resilient solutions.

p2panda is "broadcast-only" at it’s heart, making any data not only offline-first but also compatible with post-internet communication infrastructure, such as shortwave, packet radio, Bluetooth Low Energy, LoRa or simply a USB stick.

p2panda is a very multifaceted project: We maintain our crates, apply for grants, design protocols and do research in radically distributed data-types. We organise community events and write peer-to-peer applications with our friends and collaborators.

Libraries

  • 📦 p2panda-net Find peers in a peer-to-peer network, connect to them directly - whereever they are - and exchange any data of your interest in form of byte streams.
  • 📦 p2panda-discovery Solutions to find other peers in your local network or on the internet and interfaces to start building your own.
  • 📦 p2panda-sync Protocol implementations to efficiently "catch up on past state" with other peers and interfaces to start building your own.
  • 📦 p2panda-blobs Efficiently send, receive and store (very large) files.
  • 📦 p2panda-core Highly extensible data-types of the p2panda protocol for secure, distributed and efficient exchange of data, supporting networks from the internet to packet radio, LoRa or BLE.
  • 📦 p2panda-store Interfaces and implementations to store p2panda data types in databases, memory or file-systems.
  • 📦 p2panda-stream Collection of various methods to process your p2panda data streams before they reach your application.
  • 🚧 p2panda-node All-in-one p2panda node which can be used in federated or fully decentralised networks or both at the same time. Supports "lightweight" clients running in the browser.
  • 🚧 p2panda-caps Manage access to data with capabilities.
  • 🚧 p2panda-group Local-first roles and group-encryption with Post-Compromise-Security and optional Forward-Secrecy.

News

Projects

Contact

Find all source code on GitHub, follow us on the Fediverse, join our official Chat or write us an Email! We'd love to hear from you!