Skip to main content
In-memory database · Unity & .NET game clients

Stop fighting
your own game data.

Right now it's hand-wired across managers, ScriptableObjects and OnChanged events until a simple shop or inventory owns your week — and a year later it's a tangle you're scared to touch. ConjureDB lets you describe your data once and generates the fast C# instead: clean systems you build once and reuse, with no spaghetti and no GC spikes from your data layer.

Unity 2021.3+ · IL2CPP & Mono.NET 8 · .NET Standard 2.1Index-aware optimizerReactive views · IVM
ConjureDB schema
table Player(persistence: local, capacity: 16384, type_id: 1001) {
id : int @id
name : string
score : int
@@index(fields: [score], name: "Player_ByScore", kind: sorted_set, order: [desc])
}
# every screen can reuse this — written once
query GetTopScorers(count: int) -> Player[] =
from Player
| sort -score
| take @count

You write the schema & query. ConjureDB emits the C# — switch the tab and read it.

50×+faster than SQLite*
O(1)indexed lookups
AOTIL2CPP-safe
1build step · no runtime parser

* 57-query game-workload benchmark vs SQLite (50,000 players). See the methodology →

Sound familiar?

The features that quietly eat your sprints

It always starts simple. Then the data spreads across scripts, the edge cases pile up, and the "quick" feature owns your week — the same way, every project:

A shop or inventory that should've taken a day takes a week.

The same systems — inventory, quests, progression — rewritten from scratch in every new project.

Game data spread across managers, ScriptableObjects and singletons — impossible to follow.

OnChanged events wired by hand; miss one subscription and the UI shows the wrong thing.

Touch one feature and three others break — and nobody is sure why.

Lists you loop over every frame, until the GC starts spiking.

There's a calmer way

Describe your data — don't wire it by hand

Underneath, every one of those is the same thing: game data hand-wired across your scripts. ConjureDB lets you describe your data and the queries you need — players, items, scores — in one place, and generates the fast C# that used to sprawl across a dozen MonoBehaviours. You get clean, reusable systems, and the speed comes for free.

What that one move buys you

Four wins from the same decision

Architecture & reuse

Features that travel between games

Behind a declarative schema, a feature owns its data on its own terms — not welded into one game's managers and presenters. Build a shop or inventory once and carry it into the next project.

Why it matters →
Performance

Fast lookups, not per-frame loops

ConjureDB indexes your data and picks the fast path for every query, so the lookups you'd otherwise write as loops over lists don't cost you frames. You say what you want; it finds the quickest way there.

How it works →
Reactivity · IVM

Views that stay fresh by themselves

Incremental view maintenance keeps leaderboards and inventories current by applying only what changed — no manual invalidation, no refresh-order bugs, cost that scales with edits not data size.

Reactive queries →
Frame budget

AOT-safe, allocation-lean C#

It compiles to plain C# — no runtime codegen, no reflection on the query path — so it survives IL2CPP and a tight mobile frame. The query hot path is allocation-free; if you do not trust it, read the generated code.

See performance →
The bottom line

Less to reinvent. Less to untangle.

Features stop being from-scratch rebuilds and become things you declare once and reuse across titles. The coupling that makes a growing game unmanageable goes away — so your team spends its time on the game, not on rebuilding its plumbing. Better architecture that costs you neither frames nor the same feature twice.

Measured, not asserted

Fast — and willing to show its work

In a 57-query game-workload benchmark against SQLite (50,000 players), all 56 production queries ran 50× or faster, none slower. Numbers depend on your workload and hardware — so we publish the methodology and tell you to benchmark your own scenario.

Who it's for

One project, read at every altitude

CEOs & Producers

Build a system once and reuse it across every title, instead of paying to rebuild the same features for each new game.

CTOs & Tech Leads

A cost-based optimizer and incremental view maintenance, with explicit, honest limits and inspectable, generated code you can read.

Senior Developers

A schema-first DSL, compiled queries and mutations, indexing you control, and zero-allocation editors — with examples to copy from.

Read the full argument

From the shop screen that depends on everything to a compiled data layer — the case for ConjureDB, and the honest limits, in one read.