A lightweight, decentralized graph database designed for modern web applications, offering real-time peer-to-peer synchronization, SM (Security Manager) Provides WebAuthn-based authentication, role-based access control (RBAC), Access Control Lists (ACLs), and efficient local storage utilizing OPFS.
{ rtc: true }
option.The GenosDB API is currently in a stable beta. We are actively adding features and improving stability. We recommend checking the CHANGELOG as we continue to refine the API for its first stable release.
superadmin
, admin
, etc)read
/write
/delete
/publish
)GenosDB operates in a real-world P2P environment, which exposes the system to network uncertainties by design. Our engineering focus is on mitigating these uncertainties within our software through robust conflict resolution (CRDTs) and synchronization logic. While we cannot control external network conditions, our commitment is to the continuous research and development required to ensure the highest possible resilience of the GenosDB engine.
npm install genosdb
import { gdb } from "genosdb"
<script type="module">
import { gdb } from "https://cdn.jsdelivr.net/npm/genosdb@latest/dist/index.min.js"
</script>
Technical Docs: Find API references and guides in /docs.
Introduction & Concepts: Visit our GitHub Wiki for an overview.
Tutorials: Explore use cases on Medium.
For interactive, AI-assisted GenosDB documentation:
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. |
genosrtc |
New Internal Module for 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.
GenosRTC
(Internal Module for GenosDB) :
GenosRTC is the real-time communication module for GenosDB, implementing peer-to-peer connections via WebRTC with signaling over the Nostr protocol.
This module was developed internally for the specific needs of GenosDB and leverages state-of-the-art cryptographic dependencies, such as @noble/curves
, to ensure maximum security and performance.
Enables peer-to-peer synchronization, ensuring real-time updates across multiple instances of the application.
Note: Among the available networks supported by GenosRTC, 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
:
Facilitates lightweight communication between browser tabs, allowing seamless updates without relying on external servers.
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.
The project includes an interactive visualization of the repository’s history and structure, which you can explore here:
This graphical view is especially useful for new contributors or anyone looking to gain deeper insight into the project’s evolution and structure, providing a clear and visual understanding of the workflow.
We value community contributions and welcome your help in improving GenosDB! Currently, contributions are focused on:
Please read our Contribution Guidelines for more details. We do not accept pull requests for the core source code at this time.
We value community contributions and discussions! Here’s how you can get involved:
See the discussion on Product Hunt:
Feel free to ask questions, share ideas, or just say hello! 👋
For more details on contributing, check out our Contributing Guidelines.
The minified builds of GenosDB (GDB) are provided free of charge (Freeware
) for both personal and commercial use. You are welcome to integrate these builds into your applications without cost.
However, the source code for GenosDB is proprietary and is not available under an open-source license. You do not have the right to decompile, reverse-engineer, or modify the core source code.
This project includes third-party dependencies with their own respective licenses. For detailed information, see the Third-Party Licenses page.
This repository provides minified builds of GenosDB (GDB), a decentralized P2P graph database designed for modern web applications. These builds are freely available for anyone to use and integrate into their projects. Please note that the source code is not publicly available at this time; only the minified versions are provided. The project is actively maintained by Esteban Fuster Pozzi (@estebanrfp)
Esteban Fuster Pozzi (@estebanrfp) — Full Stack JavaScript Developer and creator of GenosDB (GDB), a free-to-use real-time graph database built entirely with modern vanilla JavaScript.
GenosDB is an independently developed project with a long-term vision to power the next generation of secure, decentralized, and real-time applications.
For strategic partnerships, enterprise support inquiries, or discussions regarding the project’s roadmap and future, please feel free to reach out directly.
Contact: estebanrfp@gmail.com or start a conversation in GitHub Discussions.