FASTEST ORDERED STORAGE FOR .NET

Your data.
In order.

An ordered key-value engine that runs inside your .NET application. Write at speed, scan by range, and keep control of how your data is stored.

.NET 6–10Open source · MITRuns in your process
Inside the engine 01 / STORAGE
ZoneTree: writes, compaction, and queries in parallel Parallel writes fill the mutable segment. At capacity, the entire segment moves into the read-only queue and a new mutable segment accepts writes. The read-only layer starts empty and fills with segments 1, 2, and 3. Once all three have arrived, background compaction merges them with the existing disk segment into a replacement multipart disk segment. Parallel live queries continue across the layers throughout. 3 2 1 PART 01 PART 02 PART 03
LSM-tree architectureFollow the data

A FOUNDATION YOU CAN BUILD ON

One engine.
Your data model.

Use ZoneTree as an embedded database, or build your own data layer on its ordered, persistent core.

FROM PACKAGE TO PERSISTENCE

A storage engine.
A familiar API.

Open a tree, write a value, and read it back. Your data lives in a local directory, and your code stays in C#.

dotnet add package ZoneTree
Program.csC# / .NET
using ZoneTree;

using var tree = new ZoneTreeFactory<int, string>()
    .SetDataDirectory("data/my-tree")
    .OpenOrCreate();
using var maintainer = tree.CreateMaintainer();

tree.Upsert(42, "Hello, ZoneTree");

if (tree.TryGet(42, out var value))
    Console.WriteLine(value);
using ZoneTree;

using var tree = new ZoneTreeFactory<int, string>()
    .SetDataDirectory("data/my-tree")
    .OpenOrCreate();
using var maintainer = tree.CreateMaintainer();

using var iterator = tree.CreateIterator();
iterator.Seek(100);

while (iterator.Next() && iterator.CurrentKey < 200)
    Console.WriteLine($"{iterator.CurrentKey}: {iterator.CurrentValue}");

One tree per data directory. The maintainer handles background merges and cache cleanup.

PERFORMANCE, WITH CONTEXT

A real workload.
Results you can inspect.

Two million profiles. Individual writes, secondary indexes, point reads, range scans, queries, and updates. Compare the completed workload phases across four engines.

2M-profile storeCompleted phase time · lower is better
EngineSeconds
ZoneTree173.4 s
RocksDB422.5 s
SQLite1,061.9 s
MySQL806.7 s
Inspect the reference report

WHAT WAS MEASURED

Application behavior.
Beyond an insert loop.

The profile-store benchmark compares ZoneTree, RocksDB, SQLite, and MySQL with checksum validation across completed engines.

These timings describe this workload and its documented configuration. Durability settings differ by engine; MySQL runs over TCP. Completed phase time excludes setup, stabilization, and verification.

Read the methodology

DESIGNED TO SCALE OUT

Build the node.
Scale the database.

ZoneTree is designed to be the local storage engine inside a distributed database. Its ordered LSM-tree architecture and foundational APIs let a separate layer compose nodes into a scalable system, handling partitioning, replication, request routing, and cluster coordination.

IN DEVELOPMENT

We’re building a dedicated distribution layer on top of these foundations.

Explore partitioning & replication
SEPARATE DISTRIBUTION LAYER Connect and coordinate nodes.
PartitioningReplicationRoutingCoordination
NODE 01ZoneTreeLocal storage
NODE 02ZoneTreeLocal storage
NODE 03ZoneTreeLocal storage
ZoneTree stores and queries data within each node.
Ordered ranges & data movement
Range scans and snapshot iterators support partition export and rebuilds. Backup and restore APIs help seed new nodes.
Operation indexes & replica apply
Write operation indexes and a replica-apply helper let your replication layer track updates and reject stale same-key replays.
Local consistency & lifecycle control
Atomic updates, local transactions, and maintenance events give each node explicit control over its storage.

BUILD WITH A CLEAR PATH

Go deeper where it matters.

All documentation

BEHIND THIS WEBSITE

Built with PureStack and Regor.

Our documentation brings together static page generation, reusable HTML components, and typed styles. Meet the open-source tools behind the experience.

STATIC SITE GENERATION

PureStack

Turns MDX into static pages with shared layouts, navigation, search, and themes. PureStack brings this landing page and the documentation together in one site.

REACTIVE UI & COMPONENTS

Regor

A reactive UI library for HTML and TypeScript. Regor’s component model defines the reusable pieces behind this site, from the storage illustration to the documentation cards.

YOUR NEXT DATA SYSTEM STARTS HERE

Build something worth storing.

Start with a tree. Make it your own.

Get started with ZoneTree