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-dbnpm install @rippledb/core @rippledb/server @rippledb/db-sqlite @rippledb/materialize-dbyarn add @rippledb/core @rippledb/server @rippledb/db-sqlite @rippledb/materialize-dbUsing 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-drizzlenpm install @rippledb/core @rippledb/server @rippledb/db-drizzle @rippledb/materialize-drizzleyarn add @rippledb/core @rippledb/server @rippledb/db-drizzle @rippledb/materialize-drizzleClient-Side Setup
For a client that syncs with a RippleDB server:
pnpm add @rippledb/core @rippledb/client @rippledb/remote-httpnpm install @rippledb/core @rippledb/client @rippledb/remote-httpyarn add @rippledb/core @rippledb/client @rippledb/remote-httpPackage Overview
| Package | Purpose | Docs |
|---|---|---|
@rippledb/core | HLC timestamps, Change types, merge logic (always required) | /docs/reference/core |
@rippledb/server | Db interface and contracts for server persistence | /docs/reference/server |
@rippledb/client | Client-side sync orchestration and Store contract | /docs/reference/client |
@rippledb/remote-http | HTTP Remote implementation (client ↔ server sync) | /docs/reference/remote-http |
@rippledb/remote-trpc | tRPC Remote implementation (client ↔ server sync) | /docs/reference/remote-trpc |
@rippledb/server-trpc | tRPC router exposing pull/append procedures | /docs/reference/server-trpc |
@rippledb/zod | Zod schemas for runtime validation of RippleDB payloads | /docs/reference/zod |
@rippledb/db-sqlite | SQLite adapter using better-sqlite3 | /docs/adapters/db-sqlite |
@rippledb/db-turso | Turso/libSQL adapter | /docs/adapters/db-turso |
@rippledb/db-drizzle | Database-agnostic Drizzle ORM adapter | /docs/adapters/db-drizzle |
@rippledb/db-memory | In-memory Db adapter (tests) | /docs/adapters/db-memory |
@rippledb/materialize-core | Core materialization algorithm + adapter interfaces | /docs/adapters/materialize-core |
@rippledb/materialize-db | SQL-based state materializer (raw SQL) | /docs/adapters/materialize-db |
@rippledb/materialize-drizzle | Drizzle-based state materializer (type-safe) | /docs/adapters/materialize-drizzle |
@rippledb/store-memory | In-memory Store implementation (tests) | /docs/adapters/store-memory |
@rippledb/store-sqlite | SQLite-based Store with persistent storage | /docs/adapters/store-sqlite |
@rippledb/bind-tanstack-query | TanStack Query cache invalidation binding | /docs/adapters/bind-tanstack-query |
@rippledb/client-controllers | Abstract CRUD controllers with batch loading | /docs/adapters/controllers |
@rippledb/client-query | Final 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.