dao-xyz / peerbit

P2P database framework with encryption, sharding and search
https://peerbit.org
Apache License 2.0
194 stars 15 forks source link
database distributed e2ee libp2p orbitdb peer-to-peer


Peerbit icon Icon

Peerbit

Develop for a distributed web with Peerbit

E2EE     P2P     Auto-sharding     Searchable

Documentation - Examples - Chat on Matrix

A building block for the decentralized web

Peerbit is as easy-to-use as Firebase and provide P2P functionality like OrbitDB or GunJS yet with performance for data-intensive applications like live-streaming and cloud-gaming. It’s built on top of Libp2p (and works with IPFS) supporting encryption, sharding and discoverability (searching).

Your database schema can remain very simple but still utilize P2P networks, auto-scaling, E2E-encryption, discoverability and all other features you’d expect from a database.

Optimized for performance

Peerbit is performant, so performant in fact you can use it for streaming video by having peers subscribing to database updates. In a low latency setting, you can achieve around 1000 replications a second and have a thoughput of 100 MB/s.

Dogestream

Other examples

Chat room

Lobby + chat rooms

Blog platform

Sync files

React app

CLI

Collaborative machine learning

Get Started

  1. Install Peerbit by following the simple setup instructions in our Installation Guide.

  2. Dive into our comprehensive Documentation or checkout the Example repository to explore the powerful features and learn how to leverage Peerbit to its fullest potential.

  3. Join us on Matrix to connect, share ideas, and collaborate with like-minded individuals.

Contribute

Peerbit is an open-source project, and we welcome contributions from developers like you! Feel free to contribute code, report issues, and submit feature requests. Together, let's shape the future of Peerbit.

IMPORTANT: Peerbit uses yarn.

  1. Check yarn version: yarn -v should print something
  2. Install: yarn
  3. Build: yarn build
  4. Run tests: yarn test in root in a specifc subpackage

You might possibly need to CMD + Shift + P and then enter to restart the typescript server after the build step.

To create a new package, follow the following steps:

  1. Clone the time folder within /packages/utils/time to the desired destination and rename it
  2. Update the package.json name, description, version fields
  3. Possibly add other depencencies to the package.json dependencies field (like @peerbit/crypto)
  4. Delete contents in CHANGELOG.md
  5. Update the root package.json workspaces field
  6. Update root lerna.json workspaces field
  7. run yarn once in root

We recommend running tests with the VS Code integration though: https://github.com/CoderLine/mocha-vscode

Let's Get Coding!

peerbit.org