P2Panda
P2Panda

Building blocks for peer-to-peer applications.

p2panda offers building blocks for peer-to-peer applications. Its primary aim is to provide everything necessary to create modern, privacy-respecting and secure local-first applications.

Here is a summary of p2panda's main features and functionalities:

Core Architecture and Design Philosophy

  • Modular Approach: p2panda adopts a modular approach using various Rust crates, allowing projects the freedom to select specific components they need and integrate them with minimal friction. This design contributes to a wider, interoperable p2p ecosystem.

  • Data Compatibility: Many Rust crates operate over raw bytes and are fully compatible with your own data types and any CRDT (Conflict-free Replicated Data Type).

  • Offline-First Guarantee: The project is founded on a radical offline-first guarantee. Collaboration, encryption, and access-control must function even when operating over unstable or ephemeral connections.

  • Post-Internet Communication: The protocol is "broadcast-only" at its heart, making the data compatible with post-internet communication infrastructure such as shortwave, packet radio, Bluetooth Low Energy (BLE), LoRa, or even a USB stick.

  • Standard Integration: p2panda utilizes existing libraries and well-established standards like iroh, BLAKE3, Ed25519, STUN, CBOR, TLS, QUIC, and Double Ratchet.

Specific Library Features (Crates)

p2panda provides several specialized libraries for building P2P applications:

Library NameFunctionalityp2panda-netFinds peers, connects to them directly, and exchanges data in byte streams.p2panda-discoveryProvides solutions to find other peers in the local network or on the internet.p2panda-syncImplements protocols to efficiently "catch up on past state" with other peers.p2panda-blobsEnables efficient sending, receiving, and storage of (very large) files.p2panda-coreManages the highly extensible data-types required for the secure, distributed, and efficient exchange of data.p2panda-storeOffers interfaces to store p2panda data types in databases, memory, or file-systems.p2panda-streamProvides methods to process p2panda data streams before they reach the application.p2panda-encryptionSupports decentralized secure data- and message encryption for groups, featuring post-compromise security and optional forward secrecy.p2panda-authFacilitates decentralised group management with fine-grained, per-member permissions.p2panda-node (WIP)Acts as an all-in-one p2panda node usable in federated or fully decentralised networks, supporting "lightweight" clients running in the browser.

Collaborative Projects and Research

p2panda is also a multifaceted project involved in organizing community events, research, and application development. Related application projects demonstrate the capabilities of the tool:

  • Reflection (coming mid-2025): A local-first, collaborative text editor.

  • Toolkitty (coming mid-2025): An autonomous coordination toolkit for collectives, built for iOS, Android, and Desktop.

  • Meli Bees App: A collaborative Android app for sighting and categorization of bee species.

  • rhio: A peer-to-peer message router and file sync solution that allows processes to rapidly exchange messages and efficiently replicate large files without central coordination.

Analogy: p2panda acts like an advanced LEGO set for building secure, digital neighborhoods. Instead of relying on a central city infrastructure (the internet backbone), each block (crate) lets you build essential features—like finding neighbors (p2panda-discovery), securely whispering secrets (p2panda-encryption), or trading large goods (p2panda-blobs)—all while ensuring your neighborhood can still function perfectly even if the main power lines go down (radical offline-first guarantee).