Orbit is a Rust rebuild of Zero — a
Turborepo monorepo of Rust crates (oql, orbit-cache, orbit-protocol,
orbit-schema) plus a TypeScript client/server package, kept wire-compatible
with Zero's protocol.
The JavaScript side ships as a single, tree-shakeable package with subpath exports:
npm install @zeronsh/orbit| Import | What |
|---|---|
@zeronsh/orbit/client |
Type-safe sync client (queries, optimistic mutators, relationships) |
@zeronsh/orbit/react |
React bindings (useQuery) |
@zeronsh/orbit/server · /server/pg |
Push/query endpoint helpers (pluggable DB; Postgres built in) |
@zeronsh/orbit/orm-core |
ORM-agnostic schema IR + adapter contract + codegen |
@zeronsh/orbit/drizzle · /drizzle/cli |
Generate an Orbit schema from a Drizzle schema (orbit-drizzle CLI) |
Optional peers (react, drizzle-orm, pg, ts-morph, prettier) are only needed
for the subpaths that use them.
The Rust sync server runs as a container image — ghcr.io/zeronsh/orbit-server.
See deploy/ for a one-command Docker Compose stack (Postgres + server),
environment variables, and hosting notes.
pnpm install
pnpm check # turbo: typecheck + test for JS + Rust
pnpm --filter @zeronsh/orbit buildThe example app lives in apps/demo (Orbit Pixels — a collaborative
canvas whose schema is generated from a Drizzle schema). Releasing is handled by
changesets; see PUBLISHING.md.
Orbit is licensed under the Apache License 2.0. It contains code ported and derived from Zero (Copyright Rocicorp), which is also Apache-2.0 licensed; see NOTICE for details.
Orbit is an independent, unofficial reimplementation. It is not affiliated with, sponsored by, or endorsed by Rocicorp. References to "Zero" and "Rocicorp" are descriptive only.