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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@plures/pluresdb

v2.9.7

Published

P2P Graph Database with SQLite Compatibility - Local-first, offline-first database for modern applications

Readme

PluresDB

npm version crates.io Deno version License: AGPL-3.0

Local-First P2P Graph Database — v2.0

PluresDB is a CRDT-based graph database built with Rust and TypeScript. It provides a native sled-backed storage layer with CRDT conflict resolution, vector search, and P2P synchronisation — ideal for desktop apps, VSCode extensions, and personal knowledge management.

v2.0 breaking change: The rusqlite dependency has been removed from pluresdb-core by default. CrdtStore::with_persistence() now accepts Arc<dyn StorageEngine> instead of Arc<Database>. If you need the legacy SQL layer, enable the sqlite-compat Cargo feature. See MIGRATION.md for upgrade instructions.

Install

# Node.js
npm install @plures/pluresdb

# Deno
deno add @plures/pluresdb

# Rust
cargo add pluresdb-core

# CLI
cargo install pluresdb-cli

# Windows
winget install pluresdb.pluresdb

# Docker
docker pull pluresdb/pluresdb:latest

Quick Example

// Rust
use pluresdb_core::CrdtStore;
use pluresdb_storage::{MemoryStorage, StorageEngine};
use serde_json::json;
use std::sync::Arc;

let storage = Arc::new(MemoryStorage::default());
let store = CrdtStore::default()
    .with_persistence(storage as Arc<dyn StorageEngine>);

store.put("user:1", "actor-a", json!({ "name": "Alice" }));
let record = store.get("user:1");

Features

  • CRDT Store — conflict-free replicated data with vector clocks
  • Native Storage — sled-backed persistence (WAL, encryption, replay)
  • Vector Search — approximate nearest-neighbour via HNSW (cosine similarity)
  • Auto-Embedding — pluggable EmbedText trait; FastEmbedder for local ONNX models
  • P2P Sync — Hyperswarm DHT or WebSocket relay, end-to-end encrypted
  • Local-First — full functionality offline; sync is opt-in
  • Multi-Platform — Node.js (N-API), Deno (JSR), Rust, CLI, Docker, WASM
  • SQLite optional — legacy SQL layer via sqlite-compat feature flag

Documentation

| Document | Description | |---|---| | docs/GETTING_STARTED.md | Quick start for Node.js, Deno, Rust, CLI, Docker, Windows | | docs/API.md | Complete API reference (Rust, Node.js, Deno, REST, CLI) | | docs/ARCHITECTURE.md | Internals: CRDTs, storage, HNSW, P2P protocol | | docs/WINDOWS_GETTING_STARTED.md | Windows-specific setup guide | | docs/HYPERSWARM_SYNC.md | P2P sync deep-dive | | docs/SYNC_TRANSPORT.md | Relay transport for corporate networks | | docs/LOCAL_FIRST_INTEGRATION.md | WASM, Tauri, IPC integration guides | | docs/TESTING.md | Test suite and CI notes | | MIGRATION.md | Upgrade guide: v1.x → v2.0 | | CONTRIBUTING.md | Contribution guide | | CHANGELOG.md | Release history | | SECURITY.md | Security policy |

Architecture

PluresDB is a Rust-first monorepo:

| Crate | Responsibility | |---|---| | pluresdb-core | CRDT store, HNSW vector index, EmbedText trait; SQLite optional via sqlite-compat | | pluresdb-storage | Pluggable backends: Sled (WAL, encryption), in-memory | | pluresdb-sync | SyncBroadcaster, Transport trait, Hyperswarm / relay / disabled | | pluresdb-cli | pluresdb binary | | pluresdb-node | N-API bindings for Node.js | | pluresdb-deno | Deno FFI bindings | | pluresdb-wasm | wasm-bindgen bindings for browsers | | pluresdb-ipc | Shared-memory IPC server/client | | legacy/ | TypeScript layer (being replaced by Rust crates) |

See docs/ARCHITECTURE.md for a full description with data-flow diagrams.

Testing

npm run verify        # TypeScript build + all Deno tests
cargo test --workspace  # Rust tests

Network-dependent Hyperswarm tests are skipped automatically in CI. See docs/TESTING.md for details.

Distribution

Security

All inputs are validated and sanitised. P2P communications are end-to-end encrypted. Report vulnerabilities privately — see SECURITY.md.

Contributing

Contributions are welcome. See CONTRIBUTING.md. All contributions are licensed under AGPL v3.

License

GNU Affero General Public License v3.0. See LICENSE.


Built with Rust and TypeScript 🚀