Skip to main content
The LoraDB team
Engineering

Engineering posts from the people building LoraDB — release notes, architecture pieces, and design writing on the in-memory property-graph engine, the Cypher pipeline, and the runtime surfaces (Rust, Node.js, Python, WASM, Go, Ruby, HTTP).

View all authors

LoraDB v0.6: columnar snapshots and managed WAL checkpoints

· 5 min read
The LoraDB team
Engineering

LoraDB v0.6 — columnar LORACOL1 snapshots and managed WAL checkpoints.

LoraDB v0.6 is a persistence hardening release.

v0.3 introduced snapshots. v0.4 introduced WAL recovery. v0.5 made the engine stream results and tightened container-backed persistence. v0.6 brings those persistence pieces into a cleaner shape: columnar snapshots, managed WAL checkpoints, and binding APIs that describe the same operational model from every runtime.

The headline is simple: the persistence story is no longer "one file" and "one log" as separate ideas. Snapshots are now the checkpoint artifact the WAL can lean on.

LoraDB v0.5: streaming queries, property indexes, and faster bindings

· 5 min read
The LoraDB team
Engineering

LoraDB v0.5 — streaming queries, property indexes, and faster bindings.

LoraDB v0.5 is the release where the engine starts to breathe under larger result sets.

The first public releases were about making the model real: an in-memory graph, Cypher-shaped queries, vectors, snapshots, and then a WAL. v0.5 moves a level deeper. It changes how rows move through the executor, how common property lookups avoid scans, and how bindings expose results without requiring every query to become one large JSON payload.

The product promise is still the same: keep the graph close to the application, make the hot path fast, and keep the system small enough to understand. v0.5 makes that promise more practical once the graph stops being a demo-sized toy.

LoraDB v0.4.0: WAL, checkpoints, and crash recovery

· 6 min read
The LoraDB team
Engineering

LoraDB v0.4 — WAL, checkpoints, and crash recovery.

LoraDB v0.4.0 adds a write-ahead log.

Current API note

This release note has been updated with the current binding names. The v0.4.0 release introduced WAL-backed persistence; current builds also expose explicit raw-WAL helpers (openWalDatabase, open_wal, OpenWal) and managed commit-count snapshots on the filesystem-backed bindings.

The engine is still in-memory and local-first. What changes in this release is the durability boundary: on the surfaces that own a filesystem and process lifecycle, committed writes no longer have to live entirely in RAM between two manual snapshots.

The shortest mental model:

  • createDatabase() in Node is still a fresh in-memory graph.
  • createDatabase("application", { databaseDir: "./data" }) opens a persistent container-backed graph at ./data/application.loradb.
  • Database.create("app", {"database_dir": "./data"}), lora.New("app", lora.Options{DatabaseDir: "./data"}), and LoraRuby::Database.create("app", {"database_dir": "./data"}) do the same thing on Python, Go, and Ruby.
  • openWalDatabase({ walDir: "./data/wal" }), Database.open_wal("./data/wal"), lora.OpenWal(...), and LoraRuby::Database.open_wal("./data/wal") open explicit WAL directories; pair them with snapshot directories for managed commit-count checkpoints.
  • lora-server --wal-dir /var/lib/lora/wal turns the HTTP server into a WAL-backed process.
  • Rust gets the full open, recover, checkpoint, and sync-mode surface.

Snapshots do not go away. They stay the portable file you can back up, ship, and restore elsewhere. v0.4.0 makes them stronger by giving them something to checkpoint against.

LoraDB v0.3: snapshots for saving and restoring graph state

· 13 min read
The LoraDB team
Engineering

LoraDB v0.3 — manual point-in-time snapshots, atomic on rename, admin surface secured.

LoraDB v0.3 adds manual point-in-time snapshots.

Current API note

This release note is historical, but the snippets below have been updated to the current snapshot API. Current releases write the columnar LORACOL1 database snapshot format, support compression and encryption options, expose WASM snapshots through saveSnapshot / loadSnapshot, and can pair snapshots with WAL-backed checkpoints.

You can now dump the entire in-memory graph to a single file and restore it later. The save is atomic on rename, the load replaces the live graph in one shot, and the feature is exposed on every surface that the engine talks through — the Rust core, the Python, Node, WASM, Go, and Ruby bindings, the shared C FFI, and the HTTP server as an opt-in admin endpoint.

What this release is not is full persistence. There is no write-ahead log, no background checkpoint loop, no continuous durability. A snapshot is exactly what the name says: a point-in-time dump you take on demand. Data mutated between two saves is lost on crash. That boundary is deliberate — making the explicit, operator- controlled shape work cleanly is the foundation a WAL will sit on, and it closes the "no persistence at all" gap for the workloads that only need occasional checkpoints today (seeded services, notebooks, controlled shutdowns, scheduled backups).

LoraDB v0.2: vector values for connected AI context

· 9 min read
The LoraDB team
Engineering

LoraDB v0.2 — first-class VECTOR values for connected AI context.

LoraDB v0.2 adds first-class VECTOR values.

You can now construct vectors in Cypher, store them as node or relationship properties, pass them in as parameters through every binding, and run exhaustive similarity search against them. The value type, the wire format, the function surface, and the binding helpers all landed together so vectors behave like every other typed value in the engine.

What this release is not is a vector-index product. There is no approximate nearest-neighbour search, no built-in embedding generation, and no plugin compatibility layer. Those are deliberately out of scope for v0.2. The goal here is to make embeddings comfortable inside the graph model — to ship the foundation that an index-backed retrieval path will eventually sit on.

LoraDB public release: a fast in-memory graph database in Rust

· 7 min read
The LoraDB team
Engineering

LoraDB public release v0.1 — a fast in-memory graph database in Rust.

LoraDB is now public.

It is a fast in-memory graph database written in Rust, with a Cypher-shaped query engine, an HTTP API, and bindings for Node.js, WebAssembly, and Python. It is built for developers who need relationship queries close to their application without adopting a large graph database stack on day one.

This release is the beginning of the public journey: source-available core, developer-first adoption, and a path toward a hosted platform for teams that want managed operations later.