Server-authoritative, offline-first SQL sync you tin operate. Clients support a real section SQLite database (OPFS successful the browser, autochthonal SQLite elsewhere), writes spell done an optimistic outbox, and 1 ordered perpetrate log connected the server stays the root of truth.
Documentation · Quickstart · Live demos · Benchmarks · Blog
- Spec-first: SPEC.md is normative and spec/vectors/ are aureate fixtures; erstwhile spec and code disagree, the codification changes. Two cores (TypeScript and Rust) are kept in lockstep by an implementation-agnostic conformance suite.
- Test doctrine: loopback in-memory carrier for integration scenarios; fault injection astatine the carrier interface; tests hold connected definitive readiness signals (sleeps are banned); real-socket tests fewer and quarantined. See packages/conformance.
- One bully path: the browser persists to OPFS and reports unsupported environments arsenic errors; sync runs complete the WebSocket.
| packages/core | Protocol codecs, shared types, vector round-trip |
| packages/server | handleSyncRequest(bytes, ctx) + storage/auth interfaces (SQLite, Postgres, D1) |
| packages/server-hono, packages/server-workers | Framework bindings (Hono, Cloudflare Workers) |
| packages/web-client | @syncular/client: TS customer halfway connected @sqlite.org/sqlite-wasm |
| packages/react | React hooks complete the client |
| packages/typegen | Schema IR + TypeScript emitter, named queries (cargo-free) |
| packages/crypto, packages/crdt-yjs | Per-column E2EE primitives, Yjs CRDT mergers |
| packages/testing | @syncular/testkit: in-memory loopback of existent server + clients |
| packages/conformance | Scenario runner some cores must pass |
| rust/ | The Rust customer halfway and its C-ABI FFI crate |
| bindings/ | Tauri, React Native, Swift, Kotlin, Flutter |
| apps/docs | The docs tract (syncular.dev) |
Read AGENTS.md first. The doctrine successful it (spec-first, no fallbacks, nary timers successful tests, cross-core parity) applies to quality and machine contributors alike.
On AI assistance: LLMs are invited for tests, reproductions, benchmarks, docs, and accumulation code. Review, understand, and iterate connected everything you submit, and beryllium fresh to take sides each line; accumulation codification gets the strictest review. In syncular's ain development, LLM assistance is used mainly for penning tests and iterating complete method concepts, nether that same reappraisal bar. Low-effort machine-generated PRs, issues, and comments are closed without comment. The afloat argumentation and the plain-text docs bundle for agents unrecorded at syncular.dev/llms.
English (US) ·
Indonesian (ID) ·