Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dao-xyz/peerbit
P2P database framework with encryption, sharding and search
https://github.com/dao-xyz/peerbit
database distributed e2ee libp2p orbitdb peer-to-peer
Last synced: about 1 month ago
JSON representation
P2P database framework with encryption, sharding and search
- Host: GitHub
- URL: https://github.com/dao-xyz/peerbit
- Owner: dao-xyz
- License: apache-2.0
- Created: 2022-04-25T14:23:54.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-10-07T10:05:49.000Z (about 1 month ago)
- Last Synced: 2024-10-08T08:29:06.539Z (about 1 month ago)
- Topics: database, distributed, e2ee, libp2p, orbitdb, peer-to-peer
- Language: TypeScript
- Homepage: https://peerbit.org
- Size: 45.7 MB
- Stars: 184
- Watchers: 10
- Forks: 13
- Open Issues: 70
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
Peerbit
Develop for a distributed web with PeerbitE2EE 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](https://stream.dao.xyz) 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](/docs/videostream.gif)
## Other examples
### [Chat room](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/one-chat-room/)
[](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/one-chat-room/)
### [Lobby + chat rooms](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/many-chat-rooms/)
[](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/many-chat-rooms/)
## [Blog platform](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/blog-platform/)
[](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/blog-platform/)
### [Sync files](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/file-share/)
#### [React app](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/file-share/)
[](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/file-share/)
#### [CLI](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/file-share/)
[](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/file-share/)
### [Collaborative machine learning](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/collaborative-learning/)
[](https://github.com/dao-xyz/peerbit-examples/tree/master/packages/collaborative-learning/)
## Get Started
1. Install Peerbit by following the simple setup instructions in our [Installation Guide](https://peerbit.org/#/getting-started).
2. Dive into our comprehensive [Documentation](https://peerbit.org/#/modules/client/) or checkout the [Example repository](https://github.com/dao-xyz/peerbit-examples) to explore the powerful features and learn how to leverage Peerbit to its fullest potential.
3. Join us on [Matrix](https://matrix.to/#/#peerbit:matrix.org) 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 subpackageYou 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 rootWe recommend running tests with the VS Code integration though: https://github.com/CoderLine/mocha-vscode
## Let's Get Coding!
[peerbit.org](https://peerbit.org)