incremental view maintenance · one engine, four tracks

reactive queries, anywhere.

Register a query once and keep it's results up to date whenever data changes, never re-running the full query again. This one trick unlocks the worlds below.

ai· for agents01give your agents a live world.A query provides a view of the world. Query updates stream semantic diffs. Named, ordered, attributed to the event that caused them.enter the ai track →ui· for interfaces02the full stack reactive database.A reactive DB in the browser makes UI updates trivial. In the backend, it makes collaboration trivial. On both ends it's the full local-first stack. Instant reads, optimistic writes, seemless sync.enter the ui track →cache· for read scale03a cache that's never stale.Pin a query server-side and the engine keeps its result exact on every write. Your API reads it one-shot; every viewer shares one materialization. Public pages get cache speed with fresh-query correctness.enter the cache track →embedded· in your process04put it in your own binaryThe core is a std-only Rust crate — ~200 kB gzipped as wasm, no server, no runtime. Embed it next to your data, feed it writes, fold the delta stream yourself.enter the embedded track →

not sure where you land?

take the tour — the engine, live in your tab.

The interactive tour boots the real engine — ~200 kB gzipped of wasm — in your browser, wires three sources into one query, and streams genuine incremental deltas while you turn the knobs.

proof · measured, not promised

~430nsper incremental update, in-process
flat·30×cost holds as the dataset grows 30×
200kbthe whole engine, gzipped, in a tab
0locinvalidation or rollback code you write

Rindle is shaped for read-heavy, sync-shaped, live workloads — and honest about where it isn't the right tool. Read “what Rindle is for” →

incremental view maintenance · ai · ui · cache · embedded