W Logo
willOSMessengerGuardiansGuardianEngine
Latest release

GuardianDB 0.19.0
Sentinel TUI and Guardian Compute

A High-performance, local-first decentralized
database built on Rust and Iroh

0
servers to operate
no backend, no single point of failure
100%
local-first
a full replica on every node
ms
to synchronize
millions of records via diff
E2E
encrypted by default
identity = Ed25519 key
Under the hood

Powered by Iroh

Iroh is the networking layer behind GuardianDB. A peer-to-peer library written in Rust that connects two devices directly, wherever they happen to be.

Direct, encrypted connections

Iroh's Magicsock handles NAT traversal, hole punching and roaming (Wi-Fi ⇄ 5G without dropping), all with no global DHT.

A single QUIC socket

One encrypted UDP connection multiplexes blobs (data), docs (state) and gossip (signals) per peer, with no external daemons.

Identity is the address

Every peer is an Ed25519 public key (the EndpointId, 32 bytes). Every connection is end-to-end encrypted.

Willow reconciliation

Peers exchange only the diff between them, syncing millions of records in milliseconds instead of entire lists.

Real-time gossip

iroh-gossip's epidemic broadcast trees spread ephemeral messages with low latency and redundancy.

Capability tickets

Ed25519-signed tokens grant fine-grained permissions. Access control with no central authority whatsoever.

Founder’s words

“I didn’t have the resources to run infrastructure capable of serving thousands of people at the same time. The costs would have been prohibitive. With GuardianDB, I was able to build that foundation affordably, shaping the technology to my needs and using modern tools to create exactly what I needed.

But this is only the beginning.

GuardianDB is not just a database. It is the first step of a powerful decentralized ecosystem. An ecosystem that, with the collaboration of the community, can grow, evolve and become immense in the future.”

William Maslonek
William Maslonek
Founder of WillSearch and Chief Engineer of GuardianDB
Three ways to store data

Choose the right store

Key-Value and Document run over Iroh-Docs (Last-Write-Wins). The Event Log keeps a causal DAG for strict ordering and auditing.

Event Log Store

Event Log Store

An append-only, immutable log. A causal DAG from the ipfs-log lineage with strict ordering and auditability. Binary Postcard entries and 32-byte BLAKE3 links in place of CIDs.

Key-Value Store

Key-Value Store

A high-performance distributed map with Last-Write-Wins semantics over Iroh-Docs. Ideal for user profiles, settings and application state.

Document Store

Document Store

JSON documents with async filter queries and batch operations, over Iroh-Docs and synced by Willow. The local-first foundation for collaborative apps.

Far beyond the core

Tools that impress

feature = "odm"

The ODM

A modeling layer inspired by TypeORM/Mongoose, without giving up local-first replication.

  • Schemas, collections, indexes and unique keys
  • Derive macros: #[primary_key], #[unique], #[index]
  • TypeScript SDK with a MongoDB-style API
  • CRUD with $set, $unset, $inc
feature = "pgwire"

PostgreSQL compatible

Speak the Postgres wire protocol: psql, node-postgres and TypeORM connect and run real SQL.

  • DDL, DML, joins, aggregations and transactions
  • TypeORM migrations and QueryBuilder
  • SQL over a replicated store (local-first)
  • Gateway at 127.0.0.1:15432
feature = "sentinel"

Guardian Sentinel TUI

A terminal interface to inspect, manage and monitor a live database, without writing code.

  • Nine screens: dashboard, inspectors, ACL, topology
  • P2P replication monitor and blob browser
  • Embedded mode or attached via RPC socket
  • Everything you create survives a restart
feature = "supabase"

Supabase compatible

A layer that speaks the Supabase REST API, realtime and auth over a local-first, replicated database, with no central server.

  • PostgREST-style REST API over the stores
  • Realtime via Iroh's gossip
  • Auth with Ed25519 identities
  • Move off Supabase with no backend to operate
feature = "compute"

Guardian Compute

Decentralized edge computing. Functions run close to the data, distributed across the mesh peers themselves.

  • Functions executed on the network nodes
  • Scales with peers, not with a server
  • Low latency (compute next to the data)
  • P2P orchestration, no central coordinator
feature = "messaging"

Guardian Messaging

Peer-to-peer messaging: direct, encrypted channels, presence and real-time signals via gossip.

  • Direct, end-to-end encrypted channels
  • Real-time presence and typing
  • Offline-first delivery (converges later)
  • No central message server
Start in seconds

Spin up a node,
open a store, done.

No daemon, no server. IrohClient::development() starts a local node. Writes replicate to peers automatically and reads answer from the local replica instantly.

main.rs
use guardian_db::guardian::GuardianDB;
use guardian_db::p2p::network::client::IrohClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Spin up a local Iroh node — no server, no daemon.
    let client = IrohClient::development().await?;
    let db = GuardianDB::new(client, None).await?;

    // Open a store — writes replicate to peers automatically.
    let kv = db.key_value("settings", None).await?;
    kv.put("theme", b"dark".to_vec()).await?;

    // Local read — instant, works offline.
    if let Some(v) = kv.get("theme").await? {
        println!("theme = {}", String::from_utf8_lossy(&v));
    }
    Ok(())
}
Build on the decentralized web

Make your first commit

Into distributed systems, Iroh, Rust or decentralized databases? Code, docs, ideas or bug reports? There’s a place for you here. Come build with us.