Graph database with Role-Based Access Control (RBAC), P2P synchronization, and local storage in OPFS.
This project is under active development. Do not use it in production environments until it reaches the beta or stable phase. Check the Project Status section for more details.
superadmin
, admin
, etc)read
/write
/delete
/publish
)Important Notice: This project is currently in the research and development phase and is not yet ready for production use. Please wait until it reaches the beta or stable phase before deploying it in a live environment. Refer to the Project Status section for more details.
npm install gdb-p2p
import { GraphDB } from "gdb-p2p"
<script type="module">
import { GraphDB } from "https://cdn.jsdelivr.net/npm/gdb-p2p@0/+esm"
</script>
CDN | URL |
---|---|
jsDelivr | https://cdn.jsdelivr.net/npm/gdb-p2p@latest/+esm |
UNPKG | https://unpkg.com/gdb-p2p@latest |
For detailed documentation, visit our GitHub Wiki.
We’ve created a collection of interactive examples to help you understand how GDB works in real-world scenarios. These examples cover everything from basic setup to advanced features like RBAC and P2P synchronization.
Below is a list of internal dependencies and their purposes within the project:
Dependency | Usage |
---|---|
@msgpack/msgpack |
Data serialization/deserialization in MessagePack format. |
pako |
Data compression/decompression using gzip. |
trystero |
P2P synchronization for sharing changes in real-time between tabs/devices. |
BroadcastChannel |
Communication between browser tabs to notify local changes. |
@msgpack/msgpack
:
This library is used to efficiently serialize and deserialize data, reducing payload sizes for storage and transmission.
pako
:
Provides gzip compression to optimize data storage and network communication.
trystero
:Note: Among the available networks supported by Trystero, this project specifically uses the Nostr protocol for decentralized communication.
What is Nostr?
Nostr (Notes and Other Stuff Transmitted by Relays) is a decentralized protocol designed for censorship-resistant global communication. It operates without relying on centralized servers, instead using a network of relays to transmit signed messages between peers. Nostr is particularly well-suited for applications requiring secure, private, and scalable peer-to-peer interactions, such as social networks, messaging systems, or collaborative tools.
BroadcastChannel
:General Note: These dependencies are integral to the project’s performance and functionality, ensuring efficient data handling and real-time synchronization while leveraging decentralized technologies like Nostr.
We welcome contributions to improve this project! Please read our Contribution Guidelines for details on how to get started.
We value community contributions and discussions! Here’s how you can get involved:
Real-time chat: For quick conversations, join us on Gitter.
Here’s how you can participate in the Gitter room:
[DEV]
: Discussions about project development, new features, and technical improvements.[ANNOUNCEMENT]
: Official updates, new releases, and important news about GDB.[HELP]
: Technical support and troubleshooting for GDB-related questions.Feel free to ask questions, share ideas, or just say hello! 👋
For more details on contributing, check out our Contributing Guidelines.
This project includes third-party dependencies with their respective licenses. For detailed information, see the Licenses page in the Wiki.
The source code of this project is licensed under the MIT License. For more information, see the LICENSE file.