Skip to main content

Starfish

Starfish is a generic document sync library with hash-based conflict detection, incremental sync via timestamps, and role-based access control. It supports any storage backend (S3, MongoDB, in-memory) and any auth model.

Dual implementation in TypeScript and Python.

What you get

  • Conflict-free sync — optimistic concurrency with hash-based detection and automatic three-way merge
  • End-to-end encryption — delegated AES-256-GCM; server holds no keys
  • Cap-cert auth — Ed25519-signed capability certificates, per-device or per-member scope
  • Incremental sync — checkpoint-based pulls; only changed fields travel over the wire
  • Batch operationsbatchPull reads many collections and documents in one round-trip
  • Real-time — SSE change stream with auto-reconnect
  • Any backend — bring your own ObjectStore (S3, MongoDB, in-memory, …)

Getting started

npm install @drakkar.software/starfish-client @drakkar.software/starfish-protocol

TypeScript client guide

pip install starfish-sdk

Python server guide

Sections

SectionDescription
TypeScript Client31-page guide: sync, encryption, auth, offline, patterns
TypeScript ServerServer setup, storage, extensions
TypeScript WALWrite-Ahead Log extension
TypeScript SpacesMulti-tenant spaces
Python ServerPython FastAPI server
Migration v2 → v3Upgrade guide
PackagesPer-package API references (TS + Python)