Skip to content

What is NamiDB

NamiDB is a graph database engine built from first principles for the era of object storage, columnar execution, and AI agents.

It is embedded like DuckDB, multi-tenant by namespace, and runs the same engine whether you import it as a library, run it as a daemon, or consume it on our hosted cloud. Object storage is the source of truth.

Why now

Three things changed. They changed everything.

  1. Object storage grew up. In 2024, S3 shipped conditional writes (If-Match / If-None-Match) — the last missing primitive. For the first time, you can build a coordinated, durable system where object storage is the database — no Raft, no ZooKeeper, no etcd.
  2. The best columnar graph engine left the market. In October 2025, Apple acquired Kùzu and archived the repository. The most thoughtful columnar graph engine ever published went quiet. A hole opened.
  3. Agents need graphs. Vector search is necessary. It is not sufficient. Knowledge graphs are the substrate of agent memory, deep retrieval, and reasoning under uncertainty. The next decade of AI will run on relationships.

So we are building the database for that decade.

NamiDB is open under BSL 1.1 (converts to Apache 2.0 after three years per release). The engine is open; the cloud is the business — a hosted multi-tenant product on namidb.com is the funding model that keeps the engine moving.

The shape

NamiDB writes Cypher to your S3 bucket.

No control plane to provision. No Raft to tune. No etcd to babysit. Conditional writes (If-Match / If-None-Match) on object storage replace the consensus tier — the bucket itself is the source of truth.

Your graph database is just files in your bucket:

  • Durability is whatever S3, R2, GCS, or Azure already give you
  • Cost scales to zero when nobody queries
  • Backups are aws s3 sync
  • Tenants are folders

The engine is the same whether you run it as a library, as a Rust daemon over HTTP, or on our hosted multi-tenant cloud — and it works equally well against AWS S3, Cloudflare R2, GCS, Azure Blob, MinIO, or your local disk.

Three deployments, one engine

Embedded

pip install namidb. The “DuckDB for graphs” mode — your application imports the library and talks to a bucket directly. Lowest latency, no extra hop, no network boundary, no auth surface.

Server

namidb-server opens a namespace and exposes it over HTTP with bearer-token auth. Right when the DB lives on a different machine than the app, or you want a network boundary.

Cloud

Hosted multi-tenant SaaS on namidb.com with per-namespace scale-to-zero, encrypted-at-rest tenants, and a managed control plane. Closed beta — request access.

All three speak the same Cypher, return the same types, and write to the same bucket layout. You can boot an embedded notebook against the same s3://… URI a production daemon is serving.

What’s in the engine today

  • Cypher + GQL parsing — strict subset of GQL (ISO/IEC 39075:2024) + openCypher 9. The 12 in-scope LDBC SNB Interactive Complex Read queries (IC01–IC12) parse, plan and execute end-to-end.
  • Writes via CypherCREATE, MERGE, SET, DELETE, DETACH DELETE, REMOVE. Durable on commit_batch (WAL append + manifest CAS).
  • Cost-based optimizer — predicate pushdown, projection pushdown, join reorder, hash-join conversion, hash semi-join (EXISTS decorrelation), Parquet row-group pruning. EXPLAIN VERBOSE prints the chosen plan with selectivity and cost annotations.
  • Vectorized execution — morsel-driven executor with optional factorized intermediate representation (RFC-017) for path-heavy queries.
  • Columnar storage on object storage — Parquet node SSTs, custom edge-SST format with CSR adjacency (RFC-002), zstd compression, bloom filters, fence-pointer indices.
  • Coordination-free correctness — single-writer-per-namespace with epoch fencing via manifest CAS.
  • Tiered caches — process-wide AdjacencyCache, NodeViewCache, and SstCache. Cross-snapshot reuse with Arc-shared, byte-budgeted memory.
  • Six storage backendsmemory://, file://, s3://, gs://, az://, and any S3-compatible endpoint (R2, MinIO, Tigris, LocalStack).
  • Python bindings, CLI, and namidb-server HTTP daemon.

Where to next

30-second taste

Quickstart — six lines of Python, no credentials.

Your graph in S3

Your graph in S3 — point at an AWS bucket. Restart the process. The graph is still there.

Choose a deployment

Choose a deployment — Embedded vs Server vs Cloud, with a decision matrix.

Deep dive

The RFCs — 18 design documents covering the storage engine, SST format, optimizer, factorization, caches.