feat: prototype embedded sync runtime - #12
Conversation
|
Lifecycle follow-up is pushed through |
|
Local durable sync benchmark added and verified on both RN86 native hosts. Implementation: 1a2d738; methodology/results docs: 4a24640. The profile uses persistent app-private SurrealKV and file-backed OP-SQLite (WAL, synchronous=FULL), resets to an identical empty logical state before each enqueue sample, uses 3 warmups + 10 samples, alternates execution order, and verifies matching semantic checksums for a fixed 25-record/25-commit state. First Debug diagnostics: iOS simulator single/10-record sync enqueue medians 12.38/20.35 ms versus SQLite lower bounds 0.27/0.77 ms; Android emulator 4.61/8.30 ms versus 2.14/4.24 ms. These are deliberately not release or end-to-end replication claims; SQLite omits fingerprinting, protocol validation, optimistic reconstruction, and conflict bookkeeping. Commands: benchmark:ios:sync and benchmark:android:sync. |
Status
Warning
Draft only. This is an experimental local protocol workflow, not usable sync support. Do not merge, release, or advertise it yet.
Summary
surrealdb-sync/1codecThe direct
ciborium 0.2.2,sha2 0.10.9and other runtime pins match versions used by the pinned upstream SurrealDB workspace.Verification
cargo test --workspace: 53 passed, one authenticated-server test ignored./scripts/verify-core.sh: Rust fmt, warning-denied Clippy, workspace tests, iOS simulator target and Android NDK target passedUse Node 22.22.0 and pnpm 11.5.0. Rock currently prints non-fatal TypeScript type-stripping diagnostics while discovering its config.
Still missing / release gates
See
docs/SYNC_RUNTIME_HANDOFF.mdfor exact boundaries and commands.