# Welcome to Rindle

> A simple and fast SQL database with live queries

Think Convex, but simple, open, and cheap. Turso, but with live queries.

Under the hood, Rindle is powered by a Rust port of
[ZVM](https://github.com/rocicorp/rindle/blob/branch/docs/ZVM.md), the incremental query engine behind
[Zero](https://zero.rocicorp.dev/). ZVM blends ideas from traditional and incremental
query engines, making live queries cheap enough to be on by default.

## Features

- **Simple** It's SQL plus `subscribe()`. You already know how to use it: `CREATE TABLE`,
  `INSERT`, `SELECT`. Database, not framework.
- **Live** Agents get woken on changes. Users see what happened without refreshing. Idle
  queries cost no CPU and ~400b of memory.
- **Fast** [First result in milliseconds, updates in microseconds](https://rindle-docs.preview.rocicorp.dev/performance.md). Thousands of live queries and thousands of writes/second on one
  core.
- **Tree queries** One trailing `WITH` clause, and Rindle returns the tree of data your
  application actually wants, instead of a flat table to reassemble.
- **Composable** Layer a sync client like `@rocicorp/zero-client` or TanStack DB on top for instant
  client-first reads and writes. Or run Rindle client-side only, as an embedded relational database
  with live queries.
- **Cheap** Built to run on local NVMe with S3 as the log, so a database costs nothing when idle
  and almost nothing when active. Make one per app, one per agent, or let agents spawn their own.

## Ready to try?

Head to [Get Started](https://rindle-docs.preview.rocicorp.dev/get-started.md). Agents, see [For Agents](https://rindle-docs.preview.rocicorp.dev/agents.md).
