Skip to content

jamsocket/driftdb

Repository files navigation

DriftDB

GitHub Repo stars crates.io docs.rs docs.rs Test Chat on Discord

DriftDB is a real-time data backend for browser-based applications.

For more information, see driftdb.com.

Local Development

TypeScript libraries

To prepare the environment, install the dependencies and run a turborepo build:

# from repo root
cd js-pkg
npm i
npm run build

To run demos, run:

# from repo root
cd js-pkg/apps/demos
npm run dev

To test the TypeScript libraries, first run a local development server:

# from repo root
cargo run -p driftdb-server

Then, with the local development server running:

# from repo root
cd js-pkg/packages/driftdb
npm test

Server

Server development requires the Rust toolchain (including cargo) to be installed. Developing and deploying the driftdb-worker (Cloudflare worker) also requires Cloudflare's Wrangler tool.

To run tests:

# from repo root
cargo test

To run a local development server:

cargo run -p driftdb-server

For instructions on driftdb-worker, see driftdb-worker/README.md.

Structure of this repo

  • docs/: main online documentation and website for driftdb, available on the web at driftdb.com.
  • driftdb/: core Rust driftdb implementation.
  • driftdb-server/: Rust crate of driftdb dev server.
  • driftdb-worker/: driftdb implementation on Cloudflare Workers.
  • js-pkg/: JavaScript package root (turborepo monorepo).
    • apps/demos/: next.js project containing several demos, available on the web at demos.driftdb.com.
    • packages/driftdb/: JavaScript client library for driftdb.
    • packages/driftdb-react/: Higher-level React hook-based interface to driftdb.
    • packages/driftdb-ui/: React-based debug UI for driftdb, available on the web at ui.driftdb.com.