NamiDB
Introducing NamiDB

Your graph database lives in your S3 bucket.

Writes Cypher straight to your object storage. Embedded like DuckDB, multi-tenant by namespace, one engine across S3, R2, GCS, Azure, and MinIO.

$pip install namidbv0.5.1, open source under BSL 1.1

One engine, any bucket

  • AWS S3
  • Cloudflare R2(zero egress)
  • Google Cloud Storage
  • Azure Blob
  • MinIO
  • Tigris
  • LocalStack
  • Local FS
namidb // live consoler2://demo
Illustrative live view of NamiDB's on-bucket layout: a manifest CAS pointer, WAL segments, and node and edge SST objects across LSM levels, with read paths resolving the current snapshot before scanning. Activity is simulated on a demo namespace; latencies sit in the low-millisecond range published for these reads at scale=1.0, 540K elements. See /benchmarks for the measured medians and method.

Loved by engineers at

  • Cloudflare
  • AT&T
  • Fly.io
  • Artium AI
  • Microsoft
  • Intel
  • Red Hat
  • Dropbox
  • Alibaba
  • Tencent
  • Weaviate
  • University of Washington
Why now

Three things changed.
Recently, and all at once.

01

Object storage grew up.

In 2024, S3 quietly shipped conditional writes, the last missing primitive. For the first time, you can build a coordinated, durable system where object storage is the database, with no Raft, no ZooKeeper, no etcd. The recipe has paid off for vectors, for queues, for analytics. It has not been done for graphs.

02

Graph databases were built for the wrong era.

Existing engines were built to live on a single beefy box, with all data in RAM, priced as if RAM was the universe. Every other database category (analytics, vectors, queues) eventually moved its primary state to object storage. Graphs did not. Until 2024, they could not.

03

Knowledge became the bottleneck.

Vector search is necessary but not sufficient. The systems being shipped (assistants, coding agents, deep retrieval engines) all need graph primitives at scale. The database for that decade has not been built.

So we are building it.

And the engine is real.

The product

One engine. Three deployments.
Open from day one.

v0.5.1 shipped

Server

A single Rust binary, on your bucket.

Self-hosted production over your bucket. No volumes to provision. No state to migrate. No Raft, no etcd, no ZooKeeper. Conditional writes on object storage replace the consensus tier. Restart anywhere; the data was never on the box.

  • AWS S3
  • Cloudflare R2
  • GCS
  • Azure Blob
  • MinIO
  • Tigris
$ docker run namidb-server
v0.5.1 shipped

Embedded

DuckDB for graphs.

Import a library, point it at a bucket, write Cypher from inside your process. Notebooks, single-process apps, local dev, CI fixtures: same engine, same files. Open the same s3:// URI a production daemon is serving and the graph is right there.

$ pip install namidb
Closed beta

Cloud

Namespace per tenant. Scale to zero.

Managed multi-tenant SaaS on namidb.com, run by LESAI, Corp. Namespace per project, per agent, per customer. Scale to zero when idle. Object-storage pricing: pay for what you store, not for headroom you don't use.

One engine, any bucket. Move when you're ready, never rewrite.

For AI workloads

Built for what comes
after vector search.

Assistants need to remember what they have seen, retrieve it, and reason across it. NamiDB ships those primitives.

Knowledge graphs

Hybrid vector and graph retrieval in one engine. No federated joins, no glue code. The substrate for GraphRAG that doesn't add a second store to your stack.

Namespace per agent

Every agent gets its own folder in your S3 bucket. A million agents is a million folders. Scale to zero when idle. Backups are a copy. Snapshot isolation across time. Reconstruct what an agent knew on any past date, by design, not by hack.

Cypher and GQL

The two standard query languages for graphs, in one engine. Cypher today. GQL, the ISO 39075 standard ratified in 2024, next.

Text-to-Cypher

Natural language in, a validated query out. Schema-aware and cost-aware, designed into the engine rather than bolted on top.

The numbers

Cypher queries
in low milliseconds.

LDBC SNB Interactive queries on the synthetic dataset at scale=1.0 (540 K elements). End-to-end latency, median across thirty warm runs per parameter set. Columnar storage, vectorized execution, CSR adjacency held cross-snapshot in RAM. The engine does what the architecture promised. On these warm-path queries, NamiDB beats Kuzu by 3-5x.

IC02LDBC IC
1.09ms

Recent messages from your friends

p50, 30 warm runs, 3 parameter sets

IC07LDBC IC
1.19ms

Recent likers of your messages

p50, 30 warm runs, 3 parameter sets

IC08LDBC IC
0.95ms

Recent replies to your messages

p50, 30 warm runs, 3 parameter sets

IC09LDBC IC
2.88ms

Friends of friends, with their messages

p50, 30 warm runs, 3 parameter sets

LDBC SNB Interactive on the synthetic datagen at scale=1.0 (540 K elements). MacBook M4 Pro. object_store::InMemory. Cloud server-side comparisons against Neo4j Aura, write throughput, and the R2 microbench live in /benchmarks.

The remaining LDBC Complex Read queries land in the next sweep. v0.5 unblocks IC13 and IC14 at the parser: shortestPath / allShortestPaths compile and execute against the existing BFS over CSR adjacency. We will publish what we measure, including the runs that go the other way.

The cost story

Pay for storage.
Not for the headroom.

Legacy graph databases price by RAM. Double your hot set, double your bill, even if your data didn't grow. NamiDB stores in object storage at object-storage prices. Compute is yours to size. Storage is what you actually use.

Up to 100x less expensive than managed graph databases priced by RAM.

Estimate derived from object-storage pricing versus the RAM tiers of managed graph databases at equivalent dataset sizes. Measured per-tenant costs publish when our cloud enters public beta.

Scale to zero

Idle namespaces cost nothing.

Compute scales to zero when nobody queries, per namespace, per tenant, per agent. You pay for the bytes at rest, not for a server keeping them warm at 3 a.m.

Zero-egress on R2

Run it on Cloudflare R2.

R2 charges no egress and ships full S3-compatible conditional writes. If your app lives on Workers, Fly.io, your VPS, or your laptop, R2 is almost always the right call, and the same engine still works against AWS, GCS, Azure, or MinIO whenever you need it.

Backups are a copy

aws s3 sync and you're done.

Your database is just files in your bucket. Snapshots are object versions. DR is a second bucket. There is no proprietary dump format, no exporter to maintain, no vendor in the path.

The principles

Source on day one.
Apache in three years.

Every architectural decision lives in an RFC. Every benchmark is published, including the ones that don't go our way. The engine is source-available from day one under BSL 1.1, and each release converts to Apache 2.0 three years later. A commercial license is available for teams that redistribute it as a managed service or embed it in closed-source products.

We're building this because nobody else is going to.
Matías Fonseca, Founder
Cloud waitlist

The engine is here. Now we're opening the Cloud.

The engine itself is open source and shipped. Install it from GitHub and point it at your bucket today. The waitlist below is for NamiDB Cloud: managed multi-tenant SaaS on namidb.com, with namespace-per-tenant, scale-to-zero, and object-storage pricing. We are onboarding design partners in waves.

  • One email per wave. No spam.
  • Your data stays in your bucket. Always.
  • Unsubscribe in one click.

The graph is the shapeof how things relate.

We're giving it a database
worthy of the decade ahead.