FrankenSuite research program · A shareable brief

FrankenGraphDB Rebuilding the Graph Database From Scratch

A shareable brief from the FrankenSuite research program. Every claim below traces to the assessed repository; sources are linked at the end. Assessment pinned September 22, 2026.

Assessment pinned September 22, 2026 (the assessed commit)·~1,166 words·5 sections·Every claim traceable to a source
Six definitions. NODUS is the program’s four-ring verdict scale (Invest, Pilot, Explore, Monitor) assigned per assessment packet. TRL is technology readiness level, scored 1 to 9 per packet. CI is continuous integration: the project’s automated test runs. The pin is the exact commit the assessment froze on; every claim is evaluated at the pin, not at HEAD. The rider is the license clause withholding all rights, including benchmarking and analysis, from OpenAI, Anthropic, their affiliates, and anyone acting for them. Bus factor is how many people can leave before the project stalls; it is 1 for every repo here.

01 · What it is

What a graph database is, and why one just left the table

Most databases store the world as rows in tables. A graph database stores it as nodes (things) and edges (relationships between things), and queries follow the relationships directly: friends of friends, fraud rings moving money through accounts, supply chains, recommendations. The relationships are the data. The incumbent is Neo4j, which defined the category and still owns most of it.

The newer pressure comes from AI agents. An agent doing long-running work needs memory: what it learned, when it learned it, the ability to fork a line of inquiry and merge it back. That is a graph problem with time travel built in, and few databases were built for it.

Then, in October 2025, Apple acquired Kùzu Inc., and the upstream repository of Kùzu was archived read-only on October 10, 2025. Kùzu was the one modern, open, embedded graph engine whose query architecture the field widely admired: columnar storage, vectorized execution, worst-case-optimal joins. Community forks carry the code forward, but no fork has yet established stable maintenance. The most modern open graph engine left the commons. That is the opening FrankenGraphDB is aimed at.

02 · Why build it

Why rewrite it in Rust

The maintainer — Jeffrey Emanuel, a solo developer building a whole suite of Rust reimplementations — makes the blank-slate case explicitly. Every shipping graph database is frozen around one old decision: Neo4j around the JVM, TigerGraph around a proprietary platform, Memgraph and FalkorDB around in-memory speed with thin durability, JanusGraph and NebulaGraph around generic key-value underlays that tax every traversal. A fork would inherit whichever substrate it forked. Only a clean room lets you re-derive storage and execution around new ideas.

His stated bet is composition. Six ideas, each claimed at or beyond the current frontier: a single commit stream unifying versioning, time travel, branching, and replication ("One Version Universe"); graph-structured log-structured storage ("Strata"); a unified join execution engine ("Loom"); incremental everything ("Ripple"); deterministic, certificate-carrying query results; and branch-per-agent isolation for AI workloads. The pitch is that nobody has ever composed all of these in one system, and that building it in Rust buys memory safety without a garbage collector. The timing argument is the fair one: Kùzu really was archived, and the lane it occupied is empty of a maintained occupant.

The counter-argument is that the forks are not standing still. Community forks like LadybugDB already run full Cypher on the proven Kùzu engine, while FrankenGraphDB's live query surface is a deliberately bounded slice: one- and two-hop patterns, integer predicates, no aggregation, no ORDER BY, no mutation. The pitch is that architecture plus evidence beats feature breadth. That is an unproven bet, and the agent-memory workloads it targets are the maintainer's thesis, not measured demand.

03 · What was built

What the project actually built

The scale is startling for one person: 735,929 lines of first-party Rust across 30 workspace crates, written in about two months. But the accurate one-line description comes from the maintainer's own status document, not the README: what runs today is an embedded Rust library with a bounded query slice over real durable storage. There is no database server and no installable command-line tool. The bridge table the project maintains says so plainly.

What is actually built is the evidence apparatus around the code. Every claim the project makes lives in a machine-readable registry: twenty named invariants, claim-lint rules, an unsafe-boundary ledger, all checked by a purpose-built tool that runs in the gate chain. The claim-governance tool alone is an 84,000-line codebase. A 19-row promise-versus-reality table maps each README promise to its measured state, and most rows read Partial or Not integrated. A 562-line negative-evidence ledger files the project's losses. Unsafe code is counted exactly: six sites, confined to three ledgered crates, with the rest of the workspace forbidding it, and an independent recount reproduced the number. When two verifier-found overclaims surfaced in September, the changelog recorded the corrections and the new mutations that guard against recurrence.

Evidence · CI status

What the project’s own CI said at the pin

  • There has been no verdict-bearing CI (continuous integration: automated checks that run on every change) run since September 3, when the owner de-automated the GitHub workflow by ruling; correctness evidence now rests on local runs on the maintainer's fleet that no outsider can observe.

The uncomfortable findings

Uncomfortable finding

The README is deliberately written in present tense as the 1.0 target-state specification. The disclosure is prominent, but only sharding is named as future work in its Limitations section, while the bridge table quietly marks roughly ten more areas as partial or unbuilt. A reader who stops at the README gets a materially wrong picture. The README's "No serde. Ever." badge is contradicted by the repository's own lockfile, which resolves 204 crates.io packages, including serde, pulled in through the project's pinned foundation dependencies. For a project whose pitch is auditability, a badge-level claim falsified by its own lockfile is a structural wound. The headline performance gates, three times Neo4j on the standard graph benchmark, are stated as provisional targets, not results. The only measured number anywhere is a September 8 micro-measurement on the bounded query slice, two weeks stale at the pin (the commit the assessment was pinned to). And the license is MIT plus a rider naming OpenAI and Anthropic as forbidden parties, barred even from benchmarking the code, which GitHub's classifier declines to recognize as open source.

04 · Where it stands

Where it stands

In our program's terms: TRL 4, NODUS ring Explore. In plain English: the machinery is unusually rigorous and the durable embedded store is real, but the product surface is pre-release, the performance numbers are targets, there is one maintainer, and the license rider blocks the likeliest evaluators from touching it. source

Technology readiness

TRL 4 on a 1-to-9 scale.

NODUS ring

MonitorExplorePilotInvest

The program’s adoption ring for this project.

Verdict key

NODUS ring
Explore: The default for substantive-but-unproven work.
TRL
Technology Readiness Level, a 1-to-9 scale of how proven a technology is. This brief rates the project at TRL 4.
CI
Continuous integration: the project’s automated checks, run on every change.
The pin
The exact commit the assessment was pinned to. “At the pin” means as of that commit.

Evidence tiers

  1. Tier 1 · Verified — Confirmed by direct inspection of a fresh clone, an API response, or a live page read by the analyst.
  2. Tier 2 · CI-observed — Observed executing on live CI pages. Attests the suite runs, not that it is green, unless pass/fail is legible.
  3. Tier 3 · Maintainer claim — Asserted in README or docs by the maintainer; not independently executed or reproduced.
  4. Tier 4 · External — Independent sources: APIs, papers, press, third-party benchmarks. Absence of coverage is reported as a finding.
  5. Tier 5 · Inference — The analyst’s judgment. Always labeled; never presented as fact.

What this verdict rests on. Tier labels are the assessment packet’s own annotations.

  • Tier 1 · Verified: Counts from the clone; no verdict-bearing CI run since September 3, when the workflow was de-automated to manual.
  • Tier 3 · Maintainer claim: The Sep-08 proof (3,449 test outcomes, Miri green) is maintainer-reported; the Lean proofs were asserted but not inspected.
  • Tier: unassessed in packet: Whether the pin builds: CI was de-automated and the analyst never compiled it.
  • Tier 4 · External: No independent coverage.
  • Tier 5 · Inference: The Explore ring at TRL 4.

Should you use it?

No.

There is no release, no server, and the query language is a bounded slice.

Should you learn from it?

Yes.

The methodology is the main export: the claim registries, the bridge table, the negative-evidence discipline, the unsafe census. Mine the process, not the product.

What would change the verdict, in order

  1. the rider narrowed or removed (the necessary condition), a tagged release of the embedded library, the first measured benchmark of the shipped subset rather than the target state, a second human committer
  2. Until then, if you need an open graph engine today, the Kùzu forks are the ones actually running

05 · What it teaches

What this teaches about building with agents

The transferable lesson is the bridge table.

At the commit velocity this project runs, with daily pushes and hundreds of work items tracked in-repo, any prose claim about the codebase decays within days. The maintainer learned this and built machinery instead of prose: every claim registered with a bound checker, a standing table mapping promises to measured reality, a ledger of losses, and mutations that fail loudly when a claim is quietly demoted. The tree's size measures the methodology as much as the engine.

The lesson for anyone building with agents: agent-assisted velocity makes documentation drift a background process, not an incident. README prose cannot keep up with fifty commits a day. source So do not govern claims with prose. Register them in machine-checked form, bind each to a checker, and keep a public table of what actually runs versus what is specification. The moment your claims outrun your checkers, your repository becomes a brochure. FrankenGraphDB's machinery is what keeps it, mostly, from becoming one. source

Evidence

This page cites selected evidence. The full claim-by-claim audit is in the assessment packet.

Open a panel to see what each source evidences. Full claim-by-claim audit.

Full claim-by-claim audit with evidence tiers lives in the program's assessment packet.

The repositorygithub.com/Dicklesworthstone/frankengraphdb
README

its README, IMPLEMENTATION_STATUS.md, docs/REALITY_CHECK_AND_BRIDGE_PLAN.md, docs/NEGATIVE_EVIDENCE.md

LICENSE

LICENSE at the assessed commit

Kùzu archival (2025-10-10) and Apple acquisition ...

Kùzu archival (2025-10-10) and Apple acquisition (October 2025) corroborated by community fork documentation (siafudb-kuzu, cartograph ADR-0008).