RippleDB
RippleDB
Getting Started

Installation

Install RippleDB packages and set up your project

Installation

RippleDB is distributed as a set of npm packages. Install what you need based on your use case.

Server-Side Setup

For a backend that stores changes and materializes state:

pnpm add @rippledb/core @rippledb/server @rippledb/db-sqlite @rippledb/materialize-db
npm install @rippledb/core @rippledb/server @rippledb/db-sqlite @rippledb/materialize-db
yarn add @rippledb/core @rippledb/server @rippledb/db-sqlite @rippledb/materialize-db

Using Drizzle ORM?

If you're already using Drizzle, use the Drizzle-specific packages instead:

pnpm add @rippledb/core @rippledb/server @rippledb/db-drizzle @rippledb/materialize-drizzle
npm install @rippledb/core @rippledb/server @rippledb/db-drizzle @rippledb/materialize-drizzle
yarn add @rippledb/core @rippledb/server @rippledb/db-drizzle @rippledb/materialize-drizzle

Client-Side Setup

For a client that syncs with a RippleDB server:

pnpm add @rippledb/core @rippledb/client @rippledb/remote-http
npm install @rippledb/core @rippledb/client @rippledb/remote-http
yarn add @rippledb/core @rippledb/client @rippledb/remote-http

Package Overview

PackagePurposeDocs
@rippledb/coreHLC timestamps, Change types, merge logic (always required)/docs/reference/core
@rippledb/serverDb interface and contracts for server persistence/docs/reference/server
@rippledb/clientClient-side sync orchestration and Store contract/docs/reference/client
@rippledb/remote-httpHTTP Remote implementation (client ↔ server sync)/docs/reference/remote-http
@rippledb/remote-trpctRPC Remote implementation (client ↔ server sync)/docs/reference/remote-trpc
@rippledb/server-trpctRPC router exposing pull/append procedures/docs/reference/server-trpc
@rippledb/zodZod schemas for runtime validation of RippleDB payloads/docs/reference/zod
@rippledb/db-sqliteSQLite adapter using better-sqlite3/docs/adapters/db-sqlite
@rippledb/db-tursoTurso/libSQL adapter/docs/adapters/db-turso
@rippledb/db-drizzleDatabase-agnostic Drizzle ORM adapter/docs/adapters/db-drizzle
@rippledb/db-memoryIn-memory Db adapter (tests)/docs/adapters/db-memory
@rippledb/materialize-coreCore materialization algorithm + adapter interfaces/docs/adapters/materialize-core
@rippledb/materialize-dbSQL-based state materializer (raw SQL)/docs/adapters/materialize-db
@rippledb/materialize-drizzleDrizzle-based state materializer (type-safe)/docs/adapters/materialize-drizzle
@rippledb/store-memoryIn-memory Store implementation (tests)/docs/adapters/store-memory
@rippledb/store-sqliteSQLite-based Store with persistent storage/docs/adapters/store-sqlite
@rippledb/bind-tanstack-queryTanStack Query cache invalidation binding/docs/adapters/bind-tanstack-query
@rippledb/client-controllersAbstract CRUD controllers with batch loading/docs/adapters/controllers
@rippledb/client-queryFinal DX: controllers + TanStack Query invalidation/docs/reference/client-query

TypeScript

RippleDB is written in TypeScript and ships with full type definitions. No additional @types/* packages needed.

Next Steps

On this page