npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

gdb-p2p

v0.0.53

Published

Distributed graph database (GraphDB/GDB) for real-time data modeling, scalable storage, and efficient querying of complex relationships.

Downloads

3,661

Readme

GDB (GraphDB) + RBAC (Role Based Access Control)

Graph database with Role-Based Access Control (RBAC), P2P synchronization, and local storage in OPFS.

GraphDB


NPM Version NPM License

Downloads on NPM

Project Status

NPM Unpacked Size (with version)

npm package minimized gzipped size

Main Features

GraphDB Core

  • Efficient storage in OPFS.
  • Real-time synchronization between tabs and devices.
  • CRUD operations for nodes and relationships.
  • Efficient serialization using MessagePack and compression with Pako.
  • Enabling reverse or Radix Tree indexing through external modules.
  • GraphDB supports external modules that extend its capabilities.

Warning

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.

Project Status

  • Phase: Alpha
  • Completed Features:
    • Basic queries.
    • Advanced queries.
    • Modules for AI queries.
    • Distributed storage.
  • Pending Features:
    • Improve conflict resolution module.
    • Performance optimization.

Role Based Access Control (RBAC)

  • Customizable role hierarchy (superadmin, admin, etc)
  • Authentication with Metamask
  • Biometric Registration and Authentication with WebAuthn
  • Granular permissions (read/write/delete/publish)
  • Role assignment with automatic expiration
  • Cryptographic transaction verification

Security

  • Digital signature of critical operations
  • Real-time permission validation
  • Secure storage of roles in internal graph

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.


Installation

1. Via NPM

npm install gdb-p2p
import { GraphDB } from "gdb-p2p"

2. Direct use in browser from a CDN

<script type="module">
  import { GraphDB } from "https://cdn.jsdelivr.net/npm/gdb-p2p@0/+esm"
</script>

Available CDNs

| CDN | URL | |--------------|-----------------------------------------------------------------------------------------| | jsDelivr | https://cdn.jsdelivr.net/npm/gdb-p2p@latest/+esm | | UNPKG | https://unpkg.com/gdb-p2p@latest |

Documentation

For detailed documentation, visit our GitHub Wiki.

Examples

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.

👉 Explore Examples

Internal Dependencies

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. |

Additional Information

  • @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:
    Enables peer-to-peer synchronization, ensuring real-time updates across multiple instances of the application.

    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:
    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.

Contributing

We welcome contributions to improve this project! Please read our Contribution Guidelines for details on how to get started.

Community

We value community contributions and discussions! Here's how you can get involved:

  • Ask questions or share ideas: Join our GitHub Discussions.

  • 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.

Licenses

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.

FOSSA Status

FOSSA Status